IO流使用实例

下面是使用代码

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class IO {
	public static void main(String[] args) throws Exception{
		long time1=System.currentTimeMillis();
		copy2byte("F:/TEST.txt", "ziFu1.txt");
		System.out.println("用字節流輸入該文件耗時為="+(System.currentTimeMillis()-time1));
		time1=System.currentTimeMillis();
		copy2byteBuffer("F:/TEST.txt", "ziFu2.txt");
		System.out.println("用字節Buffer流輸入該文件耗時為="+(System.currentTimeMillis()-time1));
		
//		long time1=System.currentTimeMillis();
//		copy2Character("F:/TEST.txt", "zifu1.txt");
//		System.out.println("用子符流輸入該文件耗時為="+(System.currentTimeMillis()-time1));
//		time1=System.currentTimeMillis();
//		copy2byteBuffer("F:/TEST.txt", "zifu2.txt");
//		System.out.println("用字符Buffer流輸入該文件耗時為="+(System.currentTimeMillis()-time1));
	}
	
	/**
	 * 用字节流进行文件的读取与写入
	 * @param name1 源文件地址+源文件名
	 * @param name2 存在E盘E:/FileCreate/ 下的文件名
	 */
    private static void copy2byte(String name1,String name2) {
    	InputStream is=null;
    	OutputStream os=null;
    	File fileIN=new File("E:/FileCreate/");
    	File file=new File("E:/FileCreate/"+name2);
    	File fileYuan=new File(name1);
    	if (!fileIN.exists()) {
			fileIN.mkdirs();
		}
    	try {
			is=new FileInputStream(fileYuan);
			os=new FileOutputStream(file);
			byte[]b=new byte[102400];
			int len=0;
			while ((len=is.read(b))!=-1) {
				os.write(b, 0, len);
//				System.out.println("寫入的額長度="+len);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			try {
				if (is!=null) {
					is.close();
				}
				if (os!=null) {
					os.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	
    /**
     * 用字节缓冲流进行文件的读取与写入。
     * @param name1
     * @param name2
     */
	private static void copy2byteBuffer(String name1,String name2) {
		BufferedInputStream bis=null;
		BufferedOutputStream bos=null;
		File fileIN=new File("E:/FileCreate/");
    	File file=new File("E:/FileCreate/"+name2);
    	File fileYuan=new File(name1);
    	if (!fileIN.exists()) {
			fileIN.mkdirs();
		}
			try {
				bis=new BufferedInputStream(new FileInputStream(fileYuan));
				bos=new BufferedOutputStream(new FileOutputStream(file));
				byte[]b=new byte[102400];
				int len=0;
				while ((len=bis.read(b))!=-1) {
					bos.write(b, 0, len);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}finally{
				try {
					if (bis!=null) {
						bis.close();
					}
					if (bos!=null) {
						bos.close();
					}
				} catch (IOException ioe) {
					ioe.printStackTrace();
				}
			}
	}
	
	
	
	 /**
     * 用字符流进行文件的读取与写入。
     * @param name1
     * @param name2
     */
	private static void copy2Character(String name1,String name2) throws Exception{
		File fileIN=new File("E:/FileCreate/");
    	if (!fileIN.exists()) {
			fileIN.mkdirs();
		}
    	
    	FileReader fr=new FileReader(new File(name1));
    	FileWriter fw=new FileWriter(new File("E:/FileCreate/"+name2));
    	char[]cbuf=new char[102400];
		int len=0;
	    while ((len=fr.read(cbuf))!=-1) {
			fw.write(cbuf, 0, len);
		}
	    fr.close();
	    fw.close();
	}
	
	 /**
     * 用字符Buffer流进行文件的读取与写入。
     * @param name1
     * @param name2
     */
	private static void copy2CharacterBuffer(String name1,String name2) throws Exception{
		File fileIN=new File("E:/FileCreate/");
    	if (!fileIN.exists()) {
			fileIN.mkdirs();
		}
    	FileReader fr=new FileReader(new File(name1));
    	BufferedReader bufferR=new BufferedReader(fr);
    	FileWriter fw=new FileWriter(new File("E:/FileCreate/"+name2));
    	BufferedWriter bufferW=new BufferedWriter(fw);
    	
//    	String str=bufferR.readLine();
//    	bufferW.write(str);
    	
    	char[]cbuf=new char[102400];
		int len=0;
		while ((bufferR.read(cbuf))!=-1) {
			bufferW.write(cbuf, 0, len);
		}
    	
    	fr.close();
    	fw.close();
	}
	
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值