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不知道编码是否重要。我试图让他意识到这一点,这样他就不会添加到编码不正确的错误代码堆中。在我看来,这远比讨论毫无意义的微观优化(其他人已经做过)重要得多。