文件输入输出字节流

阅读更多

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;
		
	}
	
	
}

 

你可能感兴趣的:(java,文件操作,基础)