试图读取文件

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)

Jon*_*eet 5

你正在创建一个ObjectOutputStream- 这基本上是一个充满序列化对象的二进制文件.它绝不是文本文件,不应该这样对待.

如果你想要一个文本文件,你需要Writer一些描述 - 例如OutputStreamWriter包装a FileOutputStream.如果你想一次写一行,你可能想把它包装OutputStreamWriter成一个BufferedWriter.

了解"包含序列化字符串的二进制文件"和"文本文件"之间的区别非常重要.