以下是代码:
----------------------------------------------
import java.io.*;
public class DataIOTTTT {
public static void main(String[] args) throws IOException {
DataOutputStream dosout = new DataOutputStream(new FileOutputStream("d:/sos/DataIOTTTT.txt")); double[] prices = {56.49,45.32,398.32,76.75,565.87};
int[] units = {1,2,3,4,5};
String[] msgs = {"this","is","my","name","OK?"}; for(int i=0; i<prices.length; i++) {
dosout.writeDouble(prices[i]);
dosout.writeChar('\t');
dosout.writeInt(units[i]);
dosout.writeChar('\t');
dosout.writeChars(msgs[i]);
dosout.writeChar('\n');
}
dosout.close(); //读入文件
DataInputStream disin = new DataInputStream(new FileInputStream("d:/sos/DataIOTTTT.txt"));
double price;
int unit;
StringBuffer msg; try{
while(true) {
price = disin.readDouble();
disin.readChar();
unit = disin.readInt();
disin.readInt();
disin.readChar(); msg = new StringBuffer(20);
char t;
char linesep = System.getProperty("line.separator").charAt(0);
while((t = disin.readChar()) != linesep) {
msg.append(t);
}
System.out.println(unit +" "+price+" "+msg);
}
}catch(EOFException e){
System.out.println("Error!");
}
finally{
System.out.println("close file!");
disin.close();
}
}
}
----------------------------------------------
问什么在读入文件后显示的是
Error!
close file!
而不是文件内容,请指教!
----------------------------------------------
import java.io.*;
public class DataIOTTTT {
public static void main(String[] args) throws IOException {
DataOutputStream dosout = new DataOutputStream(new FileOutputStream("d:/sos/DataIOTTTT.txt")); double[] prices = {56.49,45.32,398.32,76.75,565.87};
int[] units = {1,2,3,4,5};
String[] msgs = {"this","is","my","name","OK?"}; for(int i=0; i<prices.length; i++) {
dosout.writeDouble(prices[i]);
dosout.writeChar('\t');
dosout.writeInt(units[i]);
dosout.writeChar('\t');
dosout.writeChars(msgs[i]);
dosout.writeChar('\n');
}
dosout.close(); //读入文件
DataInputStream disin = new DataInputStream(new FileInputStream("d:/sos/DataIOTTTT.txt"));
double price;
int unit;
StringBuffer msg; try{
while(true) {
price = disin.readDouble();
disin.readChar();
unit = disin.readInt();
disin.readInt();
disin.readChar(); msg = new StringBuffer(20);
char t;
char linesep = System.getProperty("line.separator").charAt(0);
while((t = disin.readChar()) != linesep) {
msg.append(t);
}
System.out.println(unit +" "+price+" "+msg);
}
}catch(EOFException e){
System.out.println("Error!");
}
finally{
System.out.println("close file!");
disin.close();
}
}
}
----------------------------------------------
问什么在读入文件后显示的是
Error!
close file!
而不是文件内容,请指教!
System.out.println(e.getMessage);
System.out.println("Error!");
}
把异常信息打出来看,会比较有帮助
import java.io.*;
public class DataIOTTTT {
public static void main(String[] args) throws IOException {
DataOutputStream dosout = new DataOutputStream(new FileOutputStream("d:\\DataIOTTTT.txt")); double[] prices = {56.49,45.32,398.32,76.75,565.87};
int[] units = {1,2,3,4,5};
String[] msgs = {"thi","ise","mye","nam","OK?"}; for(int i=0; i<prices.length; i++) {
dosout.writeDouble(prices[i]);
dosout.writeChar('\t');
dosout.writeInt(units[i]);
dosout.writeChar('\t');
dosout.writeChars(msgs[i]);
dosout.writeChar('\n');
}
dosout.close(); //读入文件
DataInputStream disin = new DataInputStream(new FileInputStream("d:\\DataIOTTTT.txt"));//hear repaired;
double price;
int unit;
char charRead1,charRead2,charRead3;
//**********read char that that is "\t","\t","\n";**********
StringBuffer msg;
int intRead;
String str = null; try{
while(true) {
price = disin.readDouble();
charRead1 = disin.readChar();
unit = disin.readInt();
charRead2 = disin.readChar();
//disin.readInt();
// str = disin.readLine();
/*******************read string-----three chars***********/
disin.readChar();
disin.readChar();
disin.readChars();
charRead3 = disin.readChar();
/*************** This is a Question?????****************
msg = new StringBuffer();
char t;
char linesep = System.getProperty("line.separator").charAt(0);
while((t = disin.readChar()) != linesep) {
System.out.println(t);
msg.append(t);
}*/
System.out.println("result:" + unit + charRead1
+ price + charRead2 + charRead3);
}
}catch(IOException e){
System.out.println("Error: " + e.getMessage());
}
finally{
System.out.println("close file!");
disin.close();
}
}
}
第一处,刚刚进入while循环后,几条连续的读取语句:
price = disin.readDouble();
disin.readChar();
unit = disin.readInt();
disin.readInt(); //这一行去掉
disin.readChar();第二处:
char linesep = System.getProperty("line.separator").charAt(0); //最后的charAt(0)改为charAt(1);
zhang_angran(黑蓝红黄白)的做法报错。
请各位多多指教:
char linesep = System.getProperty("line.separator").charAt(0); //最后的charAt(0)改为charAt(1);
为何是charAt(1),而不是charAt(0),在此先谢过了。