FileInputStream FileOutputStream的用法总结
?
采用byte数组保存内容.适合小文件的读取写入操作
?
class="java" name="code"> 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; } }
?