本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接
提问:如何在Java中连接两个数组
用Java创建和写入(文本)文件的最简单方法是什么?
高分回答:
请注意,下面的每个代码示例都可能抛出IOException。为简便起见,省略了try / catch / finally块。有关异常处理的信息,请参见本教程。
请注意,下面的每个代码示例都将覆盖该文件(如果已存在)
创建一个文本文件:
PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();
创建一个二进制文件:
byte data[] = ...
FileOutputStream out = new FileOutputStream("the-file-name");
out.write(data);
out.close();
Java 7+用户可以使用Files该类来写入文件:
创建一个文本文件:
List<String> lines = Arrays.asList("The first line", "The second line");
Path file = Paths.get("the-file-name.txt");
Files.write(file, lines, StandardCharsets.UTF_8);
//Files.write(file, lines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);
创建一个二进制文件:
byte data[] = ...
Path file = Paths.get("the-file-name");
Files.write(file, data);
//Files.write(file, data, StandardOpenOption.APPEND);
高分回答: 在Java 7及更高版本中:
try (Writer writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("filename.txt"), "utf-8"))) {
writer.write("something");
}
文章翻译自 kgs4h5t57thfb6iyuz6dqtun5y-ac4c6men2g7xr2a-stackoverflow-com.translate.goog/questions/2…
作者建议:这里的高分回答只是很简单的说了一下简单实现
可以看到,FileChannel的性能是比较高的。 简单说一下,就拿比较火热的rocketMQ来说,它是文件系统来存储数据的,生产和消费数据都是直接操作的文件,它会涉及到页缓存、FileChannel、FileChannel一次性读取1页4kb的数据,高性能得益于ByteBuffer 缓冲区、MMAP内存映射
RokcetMQ为了更好的性能也进行了调优
- 预分配MappedFile
- mlock系统调用
- 文件预热
- 顺序读、顺序写
我这里只是进行一个抛砖引玉,大家加油!
真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话
求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!
如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️