Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建文件读取器哪种方式更适合优化?_Java_File_File Io_Filereader_Java Io - Fatal编程技术网

Java 创建文件读取器哪种方式更适合优化?

Java 创建文件读取器哪种方式更适合优化?,java,file,file-io,filereader,java-io,Java,File,File Io,Filereader,Java Io,从优化的角度来看,像这样单独声明文件更好吗 File f = new File("sample.txt"); FileReader fr = new FileReader(f); FileReader fr = new FileReader(new File("sample.txt));] 还是像这样内联做更好 File f = new File("sample.txt"); FileReader fr = new FileReader(f); FileReader fr = new Fi

从优化的角度来看,像这样单独声明文件更好吗

File f = new File("sample.txt");
FileReader fr = new FileReader(f);
FileReader fr = new FileReader(new File("sample.txt));]
还是像这样内联做更好

File f = new File("sample.txt");
FileReader fr = new FileReader(f);
FileReader fr = new FileReader(new File("sample.txt));]

你甚至不确定这是否真的重要。

这没什么区别。在你的特定情况下,做任何更具可读性的事情


它可能会影响
文件
对象何时符合垃圾收集的条件,但我会非常惊讶地看到这样一种情况,在这种情况下,这是一个显著的区别。

如果您要在代码的后面引用刚刚创建的实例
新文件(“sample.txt”)
,那么
文件f=new File(“sample.txt);
将是必需的。您可以通过引用变量
f

-访问它,无论您创建
文件类型的
对象引用变量
是否引用
文件
对象,它仍将出现在
堆上


-是的,有一个
对象引用变量
将有助于您在下次需要时重新引用该
文件
对象,这是非常有效的….

不同之处在于,在内联版本的代码中,文件对象显然不容易访问。这会降低代码的可读性、可维护性和可扩展性nd可调试。

最好不要使用
文件读取器
,因为它不允许您指定文件编码。使用
InputStreamReader
包装在
FileInputStream
周围。我不确定编码和区域设置在这里是否重要。@Roman-如果您从文件中读取/写入字符数据,编码总是很重要的字节流。总是。如果不是这样,谷歌查询“无效字节utf-8”的点击率就不会超过20000次“。使用
FileReader
是一个错误。时期如果代码有缺陷,运行速度有多快也无关紧要。你会更快得到错误的结果。@Roman-:叹气:我很清楚OP没有询问编码。事实上,我怀疑OP不知道编码是否重要。我试图让他意识到这一点,这样他就不会添加到编码不正确的错误代码堆中。在我看来,这远比讨论毫无意义的微观优化(其他人已经做过)重要得多。