FileInputStream字节输入流与FileOutputStream字节输出流使用方法

    科技2022-07-14  123

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /* * FileOutputStream字节输入流,在控制台中显示 * FileOutputStream字节输出流,在文件中显示,控制台不显示 */ public class Test { static String src=("D:\\java\\EclipseWorkspace\\Chapter02\\src\\com\\sky\\homework\\p15\\Test.java"); /*将源文件绝对路径赋值给src 正斜杠转义单斜杠/,反斜杠转义双\\*/ static String deString="D:/Test.java";//目标文件 public static void main(String[] args) throws IOException { m1();//FileOutputStream字节输出流 System.out.println(); m2();//使用字节数组、异常处理快速复制文件,自动关闭流 System.out.println(); m3();//一次复制一个字节,异常处理较为缓慢复制文件,手动关闭流 } private static void m3() { FileInputStream fis3=null; FileOutputStream fos3=null; try { fis3=new FileInputStream(src); fos3=new FileOutputStream(deString); int cc=fis3.read(); while(cc!=-1){ fos3.write(cc); cc=fis3.read(); } } catch (Exception e) { e.printStackTrace(); }finally { if(fis3!=null){//当读取文件不为空时,使用异常处理手动关闭输入流 try{ fis3.close();//每读取一次字节时需关闭输入流 }catch (IOException e) { e.printStackTrace(); } } if(fos3!=null){ try { fos3.close();//每写入一次字节时需关闭输入流 } catch (IOException e) { e.printStackTrace(); } } } } private static void m2() { copyFily(src,deString); } private static void copyFily(String src, String deString) { try ( FileInputStream fis1=new FileInputStream(src); //建立字节输入流通道,读取文件 FileOutputStream fos2=new FileOutputStream(deString); //建立字节输出流通道,写入文件 ){ byte bytes[]=new byte[1024]; int len=fis1.read(bytes); while(len!=-1){ fos2.write(bytes,0,len); len=fis1.read(bytes); } } catch (Exception e) { e.printStackTrace(); } } private static void m1() throws IOException { FileOutputStream fos=new FileOutputStream("D:/a.txt"); //如果访问的文件不存在, 系统会创建一个新文件; v如果文件已存在, 会覆盖文件原来的内容 fos.write(65);//把65对应的字符A保存到文件中 fos.write(66);//把66对应的字符A保存到文件中 fos.write(67);//把67对应的字符A保存到文件中 /*FileOutputStream fos = new FileOutputStream("d:/def.txt" , true); //如果文件不存在就创建文件,如果文件已存在, 把内容保存到文件的后面, 即以追加的方式打开 文件 */ //换行,在Windows操作系统中换行需要使用\r\n俩个字符 fos.write('\r'); fos.write('\n'); byte[] bytes = "bjpowernode".getBytes(); /*String类中的getBytes(String charsetName) 方法 使用指定的字符集将此 String 编码为 byte 序列, 并将结果存储到一个新的 byte 数组中。*/ fos.write(bytes); //把bytes数组中所有的字节保存到文件中 fos.write(13);//回车 fos.write(10);//换行 //把字节数组的部分字节保存到文件中 fos.write(bytes, 0, 2); fos.close(); } }

     

    Processed: 0.010, SQL: 8