思考
一个字符串是如何写入到文件的?
随便去网上一查便可以得到写入文件的代码,比如以下代码;但是博主以前对file和writer还有buffer并不是很了解,所以很好奇java是如何实现这个流程的。
public class WriteFile {
public static void main(String[] args) throws IOException, InterruptedException {
FileWriter fileWriter = new FileWriter("d:\\123.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
for (int i = 0; i < 100; i++) {
bufferedWriter.write(String.valueOf(i));
bufferedWriter.flush();
Thread.sleep(500);
}
bufferedWriter.flush();
bufferedWriter.close();
}
}
因为博主以前经常写python所以也把python的代码拿出来思考一下,但是写python并不会去思考底层是怎么写的(为什么?因为看不到write方法的源码?还是什么原因)
with open("d:\\123.txt", "wb", "utf-8") as f:
for i in range(100):
f.write(i)
java是怎么写入的
要了解java是如何写入的,就得一层一层去看java是如何实现的
先看看下实现的逻辑

查看代码可以梳理出上图,可以看到最终是有FileOutputStream调用的writeBytes方法,该方法为native方法
private native void writeBytes(byte b[], int off, int len, boolean append)
throws IOException;
博主对字符串写入文件的流程感兴趣,以Java为例,想了解其实现逻辑。通过查看代码发现最终由FileOutputStream调用native的writeBytes方法。同时还对比了Python,思考Java套多层实现写入字符动作的好处。

772

被折叠的 条评论
为什么被折叠?



