file-io java流关闭 - 为什么java.io.File没有close()方法?



java关闭文件 inputstream不关闭 (5)

假设你有File f = new File(“SomeFile”); f.length(); 您不需要关闭文件,因为它只是路径的表示。 你应该总是考虑关闭只读者/作家和事实上的流。

虽然java.io.RandomAccessFile确实具有close()方法,但java.io.RandomAccessFile不具有。 这是为什么? 文件是否在最终确定时自动关闭?

谢谢!


本质上,随机访问文件包装输入和输出流以管理随机访问。 您不打开和关闭文件,您打开并关闭文件流。


File类的javadoc将类描述为:

文件和目录路径名的抽象表示。

File只是一个路径名的表示,有几个关于文件系统的方法(如exists() )和目录处理,但实际的流输入和输出在别处完成。 流可以打开和关闭,文件不能。

(我个人的观点是,Sun很不幸地创建了RandomAccessFile ,导致了与其不一致的命名混淆。)


BufferedReader可以打开和关闭,但File永远不会打开,它只是表示文件系统中的路径。


你需要在i = i + l情况下explicitlylongint ,然后它将编译并给出正确的输出。 喜欢

i = i + (int)l;

要么

i = (int)((long)i + l); // this is what happens in case of += , dont need (long) casting since upper casting is done implicitly.

但是在+=情况下它只是工作正常,因为运算符隐式地从右变量的类型到左变量的类型进行类型转换,因此不需要显式转换。





java file-io