use*_*477 1 java file bufferedreader
我正在尝试用字符串写一个文件,然后阅读它.但是,当我看到它看起来很奇怪与正方形和东西..我无法复制粘贴!
这是代码:
import java.io.*;
public class ObjectOutputStreamDemo {
public static void main(String[] args) throws ClassNotFoundException {
try {
//Now Im writing
ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("fruit.dat"));
String ord[] = { "Banana", "Mango", "Apple", "Passionfruit","Orange" };
for (int i = 0; i < 5; i++) {
output.writeObject(ord[i]);
}
output.close();
//Now Im trying to read.
BufferedReader in = new BufferedReader(new FileReader("fruit.dat"));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
} catch (IOException e) {
System.out.println("Problem with file.");
}
}
}
Run Code Online (Sandbox Code Playgroud)
你正在创建一个ObjectOutputStream- 这基本上是一个充满序列化对象的二进制文件.它绝不是文本文件,不应该这样对待.
如果你想要一个文本文件,你需要Writer一些描述 - 例如OutputStreamWriter包装a FileOutputStream.如果你想一次写一行,你可能想把它包装OutputStreamWriter成一个BufferedWriter.
了解"包含序列化字符串的二进制文件"和"文本文件"之间的区别非常重要.
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |