`
王浩洋
  • 浏览: 16558 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

文件各种流和复制

    博客分类:
  • java
阅读更多
文件各种流和复制
1.字节流
通过读取字节的方式进行文件的输入和输出,用到的类为InputStream和OutputStream,
相应的操作就是调用相应的方法,下面为示例代码,都比较简单
  1)输入流应用代码
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class InputDemo {

	/**
	 * 主函数
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		InputDemo ipd=new InputDemo();
		//此路径为相对路径
		String path="src/文件输入/InputDemo.java";
		ipd.readFile(path);
	}

	private void readFile(String path) throws IOException  {
			//创建输入流对象
			InputStream ins=new FileInputStream(path);
			//根据输入流创建缓冲流
			BufferedInputStream bis=new BufferedInputStream(ins);
			//根据流中的字节长度创建一个byte数组
			byte array[]=new byte[ins.available()];
			
			//将流中的数据读到数组中(不用缓冲)
			ins.read(array);
			
			
			//运用缓冲流输入
			//bis.read(array);
			
			
			ins.close();
			bis.close();
			//将数组转换成String类型并输出
			System.out.println(new String(array));
		
		}	

}


  2)输出流应用代码
输出流的代码是关于文件复制的应用
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class OutputDemo {

	/**
	 * 主函数
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		OutputDemo opd=new OutputDemo();
		String path1="C:/Users/Deller/Desktop/人月神话.txt";
		String path2="src/文件输出/OutputDemo.java.txt";
		opd.copyFile(path1,path2);
	}
	/**
	 * 复制文件方法
	 * @param path1 要复制的文件的路径
	 * @param path2 文件副本的路径
	 * @throws IOException文件异常
	 */
	public void copyFile(String path1,String path2) throws IOException{
		
			InputStream ins=new FileInputStream(path1);
			FileOutputStream ops=new FileOutputStream(path2);
			//创建缓冲流
			BufferedInputStream bis=new BufferedInputStream(ins);
			BufferedOutputStream bos=new BufferedOutputStream(ops);
			int i=0;
			//不运用缓冲读取文件并输出(会很慢的),不信你可以找一个较大的文件

试试
			//当ins.read()=-1时,说明文件读取完毕
			//while((i=ins.read())!=-1){
			//		ops.write(i);
			//}
			//运用缓冲读取文件并输出
			while((i=bis.read())!=-1){
				bos.write(i);
			}
			System.out.println("文件复制完成!!!");
			bos.flush();
			ins.close();
			ops.close();
			bis.close();
			bos.close();
	
	}

}

2.缓冲流
其实上面代码已经运用到了缓冲流,它的创建要根据输出和输入流进行创建。
还没写完。。。。
分享到:
评论
1 楼 天之娇子zjn 2013-09-28  
唉~“还没写完”,你怎么还不写???

相关推荐

Global site tag (gtag.js) - Google Analytics