欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

文件输入输出字节流

程序员文章站 2022-05-12 20:06:32
...

FileInputStream FileOutputStream的用法总结

 

采用byte数组保存内容.适合小文件的读取写入操作

 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 
 * @author hb
 */
public class FileIo {
	/**
	 * 输入流 InputStream   字节
	 * 输出流 OutputStream  字节
	 */
	
	public static void main(String[] args) {
		//String str="中南林业科技大学";
//		String Path="d:\\ISO.vdi";//测试大文件的读取available(),zip文件发现不会读完一个就自动补充到输入流。镜像文件会自动补充
		
		String Path = "d:\\1.docx";
		String Path1 = "d:\\2.txt";
		byte[] bf={-42,-48,-60,-49,-63,-42,-46,-75,-65,-58,-68,-68,-76,-13,-47,-89};//中南林业科技大学的字节.
		File f= new File(Path);
		File f1= new File(Path1);
		byte b[]=reader(f);		
		writter(f1,b);
	}
	
	public static void writter(File f,byte bs[]){
		if(!f.exists()){
			try {
				f.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		try {
			FileOutputStream fos = new FileOutputStream(f,true);//将内容加到末尾	
//			FileOutputStream fos = new FileOutputStream(f);//覆盖文件
	//**********************遍历方法1***********		
//			byte[] bs = str.getBytes();
//			fos.write(bf);
			
			//方法2:如果需要屏蔽某些关键字,用for来遍历。***********
			for(byte b:bs){
				
				fos.write(b);	
				
			}

			//写入速度太慢,强制将数据输出到目标
				fos.flush();
				fos.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		
	}
	
	public static byte[] reader(File f){
		try {
			FileInputStream fis = new FileInputStream(f);
			int len = fis.available();
			byte [] bs=new byte[len];
			
			
//*********************************************************//
			
//			while(len>0){			
//			int b= fis.read();
//			System.out.println(b);
//			System.out.println(fis.available());
//			len=fis.available();
//		}
			
//*********************************************************//

//			int i=0;
//			int b= fis.read();
//			while(b!=-1){
//				bs[i]=(byte)b;
//				i++;
//				b= fis.read();
//				
//				
//			}
			
//*********************************************************//
			
			fis.read(bs);
			
			
			fis.close();
			String str= new String(bs);
			System.out.println(str);
			return bs;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
		
	}
	
	
}