FileChannel

FileChannel,是内存与磁盘文件的通道。

========================================================

优势:

  • 多线程并发读写,并发性;
  • IO读写性能提高(OS负责),也可引做共享内存,减少IO操作,提升并发性;
  • 应用crash,保证这部分内容还能写的进去文件。在我们调用channel.write(bytebuffer)之后,具体何时写入磁盘、bytebuffer中内容暂存于哪里(os cache)等相关一系列问题,就交由OS本身负责了。

========================================================

  • read(),write()
  • lock(), tryLock()
  • position(), size(), truncate()
  • transferFrom(), transferTo()
  • map()

【方法的具体含义】:http://www.gznc.edu.cn/yxsz/jjglxy/book/Java_api/java/nio/channels/FileChannel.html

=========================================================

备注:

  • JAVA操作大数据量的文件利用FileReader的会把所有的内容加载到内存中,因此没有意义。
    如果要使用BIO,建议使用java.io.RandomAccessFile来做,读取部分信息。
    如果要使用NIO,建议使用java.nio.channels.FileChannel,使用虚拟内存来Mapping大文件。

http://simpleframework.net/bbs/835/7894.html

关于File,简单的:

File f = new File("D:/hutuTesting.txt");
System.out.println(f.getName()); // hutuTesting.txt
System.out.println(f.getAbsolutePath()); // D:\hutuTesting.txt
System.out.println(f.toString()); // D:\hutuTesting.txt

原文地址:https://www.cnblogs.com/alipayhutu/p/2492037.html