(求助帖)关于写文件的三种方法优缺点

webnonono 2016-11-25 02:02:34
FileWriter和FileOutputStream和BufferedOutputStream.
1)网上讲的很是零散,不懂哪一个什么时候用更好,希望能告知一下.
2)我想试试使用FileOutputStream读取数据,用FileWriter来写,但是这样的话能够新建这样的一个文件,就是里面没写数据
代码如下:
FileInputStream tInputStream = new FileInputStream("D:/test1.txt");
byte[] tBytes = new byte[1024];
tInputStream.read(tBytes);
System.out.println(new String(tBytes,"UTF-8"));
FileWriter tFileWriter = new FileWriter("E:/test/test1.txt");
tFileWriter.write(new String(tBytes,"UTF-8"));
...全文
189 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
老李家的小二 2016-11-25
  • 打赏
  • 举报
回复
推荐使用带Buffered的类读写文件
webnonono 2016-11-25
  • 打赏
  • 举报
回复
说起来这些验证码也太小了,难认
webnonono 2016-11-25
  • 打赏
  • 举报
回复
引用 7 楼 soton_dolphin 的回复:
[quote=引用 6 楼 webnonono 的回复:] [quote=引用 3 楼 soton_dolphin 的回复:] FileWriter: 写字符串到目标文本文件,支持不同encoding FileOutputStream:写二进制的数据到文件 BufferedOutputStream: 先把二进制数据存到一个缓冲,然后一次写入,提高效率
我在测试的时候,发现BufferedOutputStream的效率比FileWriter还要高,我是用txt文件来测试,前者花费的时间都是略少于后者, 网上看到的是FileWriter写txt更快地说[/quote] 文件大小很有关系[/quote] 我分别测了3kb,3mb,300mb的,不过都是BufferedOutputStream更强
webnonono 2016-11-25
  • 打赏
  • 举报
回复
引用 5 楼 aqzwss 的回复:
建议使用NIO
稍微的看了一下,好像很是有用
soton_dolphin 2016-11-25
  • 打赏
  • 举报
回复
引用 6 楼 webnonono 的回复:
[quote=引用 3 楼 soton_dolphin 的回复:] FileWriter: 写字符串到目标文本文件,支持不同encoding FileOutputStream:写二进制的数据到文件 BufferedOutputStream: 先把二进制数据存到一个缓冲,然后一次写入,提高效率
我在测试的时候,发现BufferedOutputStream的效率比FileWriter还要高,我是用txt文件来测试,前者花费的时间都是略少于后者, 网上看到的是FileWriter写txt更快地说[/quote] 文件大小很有关系
webnonono 2016-11-25
  • 打赏
  • 举报
回复
引用 3 楼 soton_dolphin 的回复:
FileWriter: 写字符串到目标文本文件,支持不同encoding FileOutputStream:写二进制的数据到文件 BufferedOutputStream: 先把二进制数据存到一个缓冲,然后一次写入,提高效率
我在测试的时候,发现BufferedOutputStream的效率比FileWriter还要高,我是用txt文件来测试,前者花费的时间都是略少于后者, 网上看到的是FileWriter写txt更快地说
萧乡月夜 2016-11-25
  • 打赏
  • 举报
回复
建议使用NIO
soton_dolphin 2016-11-25
  • 打赏
  • 举报
回复
使用FileOutputStream不能读取数据数据
soton_dolphin 2016-11-25
  • 打赏
  • 举报
回复
FileWriter: 写字符串到目标文本文件,支持不同encoding FileOutputStream:写二进制的数据到文件 BufferedOutputStream: 先把二进制数据存到一个缓冲,然后一次写入,提高效率
webnonono 2016-11-25
  • 打赏
  • 举报
回复
对哦,我是傻了么?忘记关闭刷新缓冲区了!求解释第一个问题
  • 打赏
  • 举报
回复
flush一下试试

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧