Java FileReader 与文件

标签 java

我想创建一个 File/FileReader 对象来实例化一个 Scanner 对象。

所以,教科书是这样的:

File file = new File("filename.txt");

然而,我们的导师说,那是错误的,正确的方法是:

FileReader file = new FileReader("filename.txt");

两者都有效。那么,两者之间有什么区别,哪个是正确的。

最佳答案

File(String name)

Creates a new File instance by converting the given pathname string into an abstract pathname. If the given string is the empty string, then the result is the empty abstract pathname.

FileWriter(String name)

Constructs a FileWriter object given a file name.

基本上,区别在于只有实例化一个 File 不允许您写入它,而 FileWriter 可以。

FileWriter 的构造函数将一个新的 FileOutputStream 传递给 OutputStreamWriter,它根据给定的名称实例化一个 File

请注意,Scanner 用于读取 File 而不是写入。


编辑:要回答您将 FileWriter 更改为 FileReader 的编辑问题,File 之间的主要区别code> 和 FileReaderFile 没有 close 方法,而 FileReader 有并实现 可关闭File 对象提供的大多数方法都是为了直接操作文件(检查是否存在、删除、创建、列出目录中的所有文件)。正如@Pshemo 提到的,File 不应被视为数据,而只是作为路径。

我建议阅读 File APIFileReader API .

关于Java FileReader 与文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884384/

相关文章:

java - 如何将 Quartz 与 QuartzInitializerListener 一起使用?

java - 一次加载两个 JFrame

java - Hibernate 尝试在 saveOrUpdate 方法中删除不存在表中的行

java - 这个选项如何有效? -类路径困惑

java - 在 Guice 中创建菱形对象图(无单例)

java - 检索类型类的字段

java - If else 语句有 4 个结果但只有 2 个似乎有效

java - Blackberry Java 中的类之间调用

java - 如何同步访问 Java Hashmap 中的值?

java - 如何避免 com.thoughtworks.xstream.io.StreamException : Cannot create XmlPullParser while deseriliazation?