我想创建一个 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> 和 FileReader
是 File
没有 close
方法,而 FileReader
有并实现 可关闭
。 File
对象提供的大多数方法都是为了直接操作文件(检查是否存在、删除、创建、列出目录中的所有文件)。正如@Pshemo 提到的,File
不应被视为数据,而只是作为路径。
我建议阅读 File API和 FileReader API .
关于Java FileReader 与文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884384/