Java IO流之字节流

    xiaoxiao2022-07-07  127

    FileOutputStream

      1、构造方法  FileOutputStream(File file)  FileOutputStream(String name)   参数为文件路径的字符串或者文件格式都可以

    FileOutputStream out = new FileOutputStream("a.txt"); out.close();

      创建字节输出流对象了做了几件事情?   a:调用系统资源创建a.txt文件   b:创建了一个out对象   c:把out对象指向这个文件   为什么一定要close()?   a: 通知系统释放关于管理a.txt文件的资源   b: 让Io流对象变成垃圾,等待垃圾回收器对其回收   2、成员方法   (1)write()方法   public void write(int b):写一个字节 超过一个字节 砍掉前面的字节   public void write(byte[] b):写一个字节数组   public void write(byte[] b,int off,int len):写一个字节数组的一部分   写如数据时的换行: windows下的换行符是 \r\n,Linux是\n,Mac是\r   数据的追加写入: 构造方法参数后加true

    FileOutputStream out = new FileOutputStream("fos.txt" , true) ;

    FileInputputStream

      read()方法   int read():一次读取一个字节,如果没有数据返回 1   int read(byte[] b) :从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。    int read(byte[] b, int off, int len) 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。         案例演示:采用多种方式,把D:\a.txt的内容复制到D:\b.txt中 方式1:基本字节流一次读写一个字节

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Demo2 { public static void main(String[] args) throws IOException { FileInputStream in = new FileInputStream("D:\\a.txt"); FileOutputStream out = new FileOutputStream("D:\\b.txt"); int len = 0; while((len=in.read())!=-1){ out.write(len); out.flush(); } in.close(); out.close();; } }

    方式2:基本字节流一次读写一个字节数组

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Demo3 { public static void main(String[] args) throws IOException { FileInputStream in = new FileInputStream("D:\\a.txt"); FileOutputStream out = new FileOutputStream("D:\\b.txt"); int len = 0; byte[] bytes = new byte[1024*8]; while((len=in.read(bytes))!=-1){ out.write(bytes,0,len); out.flush(); } in.close(); out.close(); } }
    最新回复(0)