package IO;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class first {
public static void main(String[] args) throws IOException {
FileInputStream fin=new FileInputStream("C:/Users/RDGFT/Desktop/in.txt");
FileOutputStream fout=new FileOutputStream("C:/Users/RDGFT/Desktop/out.txt");
int i;
long a=System.currentTimeMillis();
while((i=fin.read())!=-1)
{
fout.write(i);
}
System.out.println("执行耗时 : "+(System.currentTimeMillis()-a)/1000f+" 秒 ");
fin.close();
fout.close();
}
//57.3s
}
package IO;
import java.io.*;
public class second {
public static void main(String[] args) throws IOException {
FileReader fin=new FileReader("C:/Users/RDGFT/Desktop/in.txt");
FileWriter fout=new FileWriter("C:/Users/RDGFT/Desktop/out.txt");
int i;
long a=System.currentTimeMillis();
while((i=fin.read())!=-1)
{
fout.write(i);
}
System.out.println("执行耗时 : "+(System.currentTimeMillis()-a)/1000f+" 秒 ");
fin.close();
fout.close();
}
//1.958 秒
}
package IO;
import java.io.*;
public class third {
public static void main(String[] args) throws IOException {
BufferedInputStream bin=new BufferedInputStream(new FileInputStream("C:/Users/RDGFT/Desktop/in.txt"));
BufferedOutputStream bout=new BufferedOutputStream(new FileOutputStream("C:/Users/RDGFT/Desktop/out.txt"));
long a=System.currentTimeMillis();
while(bin.available()>0)
{
bout.write(bin.read());
}
System.out.println("执行耗时 : "+(System.currentTimeMillis()-a)/1000f+" 秒 ");
bout.flush();
bin.close();
bout.close();
}
//35.592 秒
}
package IO;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class fourth {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new FileReader("C:/Users/RDGFT/Desktop/in.txt"));
BufferedWriter bw=new BufferedWriter(new FileWriter("C:/Users/RDGFT/Desktop/out.txt"));
int i;
long a=System.currentTimeMillis();
String str;
while((str=br.readLine())!=null)
{
bw.write(str);
}
System.out.println("执行耗时 : "+(System.currentTimeMillis()-a)/1000f+" 秒 ");
br.close();
bw.close();
}
//0.42 秒
}
以下是javaNIO中的内容
package NIO;
import java.io.*;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
public class first {
public static void copyByMapped() throws Exception {
FileInputStream fIn = new FileInputStream("C:/Users/RDGFT/Desktop/in.txt");
FileOutputStream fOut = new FileOutputStream("C:/Users/RDGFT/Desktop/out.txt");
FileChannel fIChan = fIn.getChannel();
FileChannel fOChan = fOut.getChannel();
long fSize = fIChan.size();
MappedByteBuffer mBuf = fIChan.map(FileChannel.MapMode.READ_ONLY, 0, fSize);
fOChan.write(mBuf); // this copies the file
fIChan.close();
fIn.close();
fOChan.close();
fOut.close();
}
public static void copyByChannel() throws Exception{
FileInputStream fin = new FileInputStream("C:/Users/RDGFT/Desktop/in.txt" );
FileOutputStream fout = new FileOutputStream("C:/Users/RDGFT/Desktop/out.txt");
FileChannel fcin = fin.getChannel();
FileChannel fcout = fout.getChannel();
ByteBuffer buffer = ByteBuffer.allocate( 1024 );
while (true) {
buffer.clear();
int r = fcin.read( buffer );
if (r==-1) {
break;
}
buffer.flip();
fcout.write( buffer );
}
}
public static void copyByFastChannel() throws Exception{
FileInputStream fin = new FileInputStream("C:/Users/RDGFT/Desktop/in.txt");
FileOutputStream fout = new FileOutputStream("C:/Users/RDGFT/Desktop/out.txt");
FileChannel fcin = fin.getChannel();
FileChannel fcout = fout.getChannel();
ByteBuffer buffer = ByteBuffer.allocateDirect( 1024 );
while (true) {
buffer.clear();
int r = fcin.read( buffer );
if (r==-1) {
break;
}
buffer.flip();
fcout.write( buffer );
}
}
public static void copyByBufferStream() throws Exception{
FileInputStream fin = new FileInputStream("C:/Users/RDGFT/Desktop/in.txt" );
BufferedInputStream bin = new BufferedInputStream(fin);
FileOutputStream fout = new FileOutputStream("C:/Users/RDGFT/Desktop/out.txt");
BufferedOutputStream bout = new BufferedOutputStream(fout);
int r=0;
byte ch[] = new byte[1024];
while((r=bin.read(ch))!=-1){
fout.write(ch);
}
fin.close();
fout.close();
}
public static void copyByByteArrayFileStream() throws Exception{
FileInputStream fin = new FileInputStream("C:/Users/RDGFT/Desktop/in.txt");
FileOutputStream fout = new FileOutputStream("C:/Users/RDGFT/Desktop/out.txt");
byte[] ch = new byte[1024];
int r=0;
while((r=fin.read(ch))!=-1){
fout.write(ch);
}
fin.close();
fout.close();
}
public static void copyByByteFileStream() throws Exception{
FileInputStream fin = new FileInputStream("C:/Users/RDGFT/Desktop/in.txt");
FileOutputStream fout = new FileOutputStream("C:/Users/RDGFT/Desktop/out.txt");
int ch;
while((ch=fin.read())!=-1){
fout.write(ch);
}
fin.close();
fout.close();
}
public static void main(String[] args)throws Exception {
long start=0, end =0;
start = System.currentTimeMillis();
copyByMapped();
end = System.currentTimeMillis();
System.out.println((end-start) + "ms");
start = System.currentTimeMillis();
copyByChannel();
end = System.currentTimeMillis();
System.out.println((end-start) + "ms");
start = System.currentTimeMillis();
copyByFastChannel();
end = System.currentTimeMillis();
System.out.println((end-start) + "ms");
start = System.currentTimeMillis();
copyByBufferStream();
end = System.currentTimeMillis();
System.out.println((end-start) + "ms");
start = System.currentTimeMillis();
copyByByteArrayFileStream();
end = System.currentTimeMillis();
System.out.println((end-start) + "ms");
start = System.currentTimeMillis();
copyByByteFileStream();
end = System.currentTimeMillis();
System.out.println((end-start) + "ms");
//一次时间为根据个人机器而有所差距
/**
* 42ms
316ms
199ms
156ms
227ms
*/
}
}
分享到:
相关推荐
java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java...
java文件读写操作大全java文件读写操作大全java文件读写操作大全java文件读写操作大全java文件读写操作大全
io java 文件操作 命令 全部 io java 文件操作 命令 全部 io java 文件操作 命令 全部 io java 文件操作 命令 全部
Java文件操作大全
java文件操作总结 详细介绍 java对文件的操作 每个都有对应的例子
java视频教程 Java文件操作 JavaFile
Java文件操作封装类
Java 文件操作大全···················································
java操作Excel文件java操作Excel文件java操作Excel文件java操作Excel文件java操作Excel文件java操作Excel文件java操作Excel文件
一些较为全面的java的文件操作的代码,在学习中有极大地帮助!!
非常全的java文件操作说明、示例,欢迎下载共同学习
Apache Commons IO提供拷贝文件方法在其FileUtils类,可用于复制一个文件到另一个地方
java文件操作工具类是java中针对文件操作的一个工具类,可以方便的读取,下载,上传文件等操作,希望可以帮到大家。
用Java文件操作实现一个通信录,实现联系人的增删改查。 比较简易,只供参考
Java文件操作Java文件操作
java中文件操作大全 覆盖大部分对文件操作的基本代码
java 文件操作类 20多个实用方法,操作文件的好帮手。 JAVA自定义Util大放送-集成j2ee精英团队十年编程之精华
java读取共享文件使用jcifs-1.1.11.jar 的SmbFile 类使用用户名密码共享目录操作共享文件