控制台程序,除了使用Files类中使用copy()方法将文件复制外,还可以使用FileChannel对象复制文件,连接到输入文件的FileChannel对象能直接将数据传输到连接到输出文件的FileChannel对象中而不涉及显式的缓冲区. 本例用来对命令行参数设定的文件进行复制.文件被复制到一个类似在原始目录下创建的备份文件中.新文件的名称通过在原始文件名称的后面附加多次“_backup”以获得唯一文件名. import static java.nio.file.StandardOpenOpt…
两种文件通道复制文件方式的性能比较 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import…
控制台程序,读取Java基础之读文件部分(StreamOutputToFile)写入的50个fibonacci数字. import java.nio.file.*; import java.nio.*; import java.io.*; public class StreamInputFromFile { public static void main(String[] args) { Path file = Paths.get(System.getProperty("user.home&qu…
Java基础-IO流对象之随机访问文件(RandomAccessFile) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.RandomAccessFile简介 此类的实例支持对随机访问文件的读取和写入.随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组.存在指向该隐含数组的光标或索引,称为文件指针:输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针. 二.RandomAccessFile用法展示 /* @author :yinzhengjie…
控制台程序,本例读取Java基础之写文件部分(PrimesToFile2)写入的Primes.txt. 方法二:设置一个任意容量的.大小合适的字节缓冲区并且使用来自文件的字节进行填充.然后整理出缓冲区中所有的内容.这种方式的问题是:缓冲区的内容可能会在读取文件的一个数据项时半途而断.这样一来,就必须做一些工作对此进行检测并且找出下一步要做的工作,但是这比第一种方式更加有效,因为这极大减少了用于读取整个文件所需的读操作数目. 本例的关键是缓冲区类提供的compact()方法,即压缩缓冲区. imp…
控制台程序,本例读取Java基础之写文件部分(PrimesToFile2)写入的Primes.txt. 方法一:可以在第一个读操作中读取字符串的长度,然后再将字符串和二进制素数值读入到文本中.这种方式的唯一不足是:这不是一种有效读取文件的方式,因为有很多的读操作,其中的每个都读取非常少量的数据. import java.nio.file.*; import java.nio.channels.FileChannel; import java.io.IOException; import java…
控制台程序,本例读取Java基础之写文件部分(PrimesToFile)写入的primes.bin. import java.nio.file.*; import java.nio.*; import java.nio.channels.ReadableByteChannel; import java.io.IOException; public class ReadPrimes { public static void main(String[] args) { Path file = Pat…
控制台程序,使用通道从缓冲区获取数据,读取Java基础之写文件(BufferStateTrace)写入的charData.txt import java.nio.file.*; import java.nio.channels.ReadableByteChannel; import java.io.IOException; import java.nio.ByteBuffer; public class ReadAString { public static void main(String[]…
控制台程序,本例读取Java基础之写文件部分(WriterOutputToFile)写入的Saying.txt. import java.io.*; import java.nio.file.*; import java.nio.charset.Charset; public class ReaderInputFromFile { public static void main(String[] args) { Path file = Paths.get(System.getProperty("…
一.概述 1.什么是NIO NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多. 在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO 更多介绍与全面概述,请参见:http://www.iteye.com/magazines/132-Java-NIO#579 2.NIO与IO的主要区别 // 原先的IO是面向流的,类似水流,是单向的:现在的NIO是面向…