我使用以下代码创建了sales.dat:
public static void main(String[] args) throws IOException {
DataOutputStream output = new DataOutputStream
(new FileOutputStream("E:/HOMEWORK/OOP/OOP-java/src/week2/sales.dat"));
output.writeChars("San Francisco: ");
output.writeDouble(1123.456);
}
当我打开sales.dat时,这里是:
我写了另一个类来读取.dat文件:
public static void main(String[] args) throws IOException {
File file = new File("E:/HOMEWORK/OOP/OOP-java/src/week2/sales.dat");
FileReader reader = new FileReader(file);
char[] buffer = new char[4*1024];
int read = -1;
StringBuilder builder = new StringBuilder();
while( (read = reader.read(buffer)) !=-1){
builder.append(buffer,0,read);
}
System.out.println(builder);
//
}
结果是:
所以plz帮助我,输出必须是:" San Francisco: 1123.456 "
答案 0 :(得分:0)
您应该使用DataInputStream来阅读。
public static void main(String[] args) throws IOException {
String name = "...";
DataOutputStream output = new DataOutputStream
(new FileOutputStream(name));
output.writeUTF("San Francisco: ");
output.writeDouble(1123.456);
output.close();
}
public static void main(String[] args) throws IOException {
String name = "C:/Users/hsivakumar/Downloads/sales.dat";
DataInputStream reader = new DataInputStream(new FileInputStream(name));
StringBuilder builder = new StringBuilder();
builder.append(reader.readUTF());
builder.append(reader.readDouble());
reader.close();
System.out.println(builder);
}
答案 1 :(得分:0)
您的期望不正确。 Name2
写入二进制文件,而不是可读文本。您的阅读程序应该使用writeDouble()
,如果您可以计算出之前要读取的字符数。您的输出文件设计不佳。
答案 2 :(得分:-1)
您需要使用DataInputStream来显示double值:
public static void main(String[] args)
throws IOException {
DataOutputStream output = new DataOutputStream(new FileOutputStream("c:/tmp/sales.dat"));
output.writeUTF("San Francisco: ");
output.writeDouble(1123.456);
output.close();
DataInputStream reader = new DataInputStream(new FileInputStream("c:/tmp/sales.dat"));
String test = String.format("%s%s", reader.readUTF(), reader.readDouble());
System.out.println(test);
}
答案 3 :(得分:-1)
好的,这似乎是您遇到的问题,可能是因为您没有刷新字节。 可以请检查
output.flush();
在对文件写入double之后,还有一件事请先通过将double值放入Variable中来尝试,然后再写入该变量。
让我知道是否能解决这个问题。干杯