IO流的常用方法(二)

缓冲流

作用:
用缓冲区来完成数据的IO操作
提高读写效率

BufferedInputStream(字节缓冲输入流)

BufferedInputStream类读取文本内容
第一种读取方法

//创建FileInputStream对象
		FileInputStream fileInputStream = new FileInputStream("src/a.txt");

	    //创建BufferedInputStream对象
        BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
        
        //通过read方法读取文件内容
	    byte[] b =new byte[1024];
	    int i =0;
	    String str ="";
	    while((i=bufferedInputStream.read(b))!=-1) {
	    	str+=new String(b,0,i);
	    } 
         System.out.println(str);	    
	}

第二种读取方法

	//创建FileInputStream对象
		FileInputStream fileInputStream = new FileInputStream("src/a.txt");

	    //创建BufferedInputStream对象
        BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
        
        //通过read方法读取文件内容
	    byte[] b =new byte[1024];
	    int i =0;
	    String str ="";
	    while((i=bufferedInputStream.read())!=-1) {
	        str+=(char)i;	
	    }     
         System.out.println(str);	    
	}

BuffereOutputStream(字节缓冲输出流)

BuffereOutputStream写入文件内容
不追加,直接覆盖

//创建FileOutputStream对象
		FileOutputStream fileOutputStream = new FileOutputStream("src/a.txt");
		//创建BufferedOutputStream对象
		BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
		//通过write()方法写入文件内容
		bufferedOutputStream.write("浩哥好帅".getBytes());
		//刷新
		bufferedOutputStream.flush();
		//关流
		bufferedOutputStream.close();
	

追加,不覆盖,在原来的基础上添加内容

         //创建FileOutputStream对象
		//创建该对象时添加一个参数true,该参数表示追加
		FileOutputStream fileOutputStream = new FileOutputStream("src/a.txt",true);
		//其他代码同上
		

BufferedReader(字符缓冲输入流)

BufferedReader类读取磁盘文件内容

       //这个是bufferedReader独有的方法,还有一些读取方法与fileInputStream相同
        //创建FileReader对象
     	FileReader fileReader = new FileReader("src/a.txt");
		//创建BufferedReader对象
     	BufferedReader bufferedReader = new BufferedReader(fileReader);
     	//通过read方法读取文件内容
	    String readLine = bufferedReader.readLine();
	    System.out.println(readLine);

BufferedWriter(字符缓冲输出流)

不追加

//创建FileWriter对象
         FileWriter fileWriter = new FileWriter("src/a.txt");
		//创建BufferedWriter对象
         BufferedWriter bw = new BufferedWriter(fileWriter);
        //通过write方法写入文件内容
         bw.write("aaaaaaaaaaaxxxxxxxxxxxxxcccccccccc");
         bw.flush();
         bw.close();

追加

  //创建该对象时添加一个参数true,该参数表示追加
   FileWriter fileWriter = new FileWriter("src/a.txt",true);
   	//其他代码同上

转换流

作用
能够把字节流转换成字符流
能够对字符流进行转码的操作

转换处理流: 是将字节流按照指定字符编码进行转换的的处理流

InputStreamReader(转换输入流)

	//创建FileInputStream对象
		FileInputStream fis = new FileInputStream("src/a.txt");

		//创建InputStreamReader对象
        InputStreamReader inputStreamReader = new InputStreamReader(fis,"GBK");
        
        int i=0;
        String str ="";
        while((i=inputStreamReader.read())!=-1) {
        	str+=(char)i;
        }
		System.out.println(str);
		
	}

OutputStreamWriter(转换输出流)

不追加

        //创建FileOutputStream对象
		FileOutputStream fos = new FileOutputStream("src/a.txt");
	    //创建OutputWriter对象
		OutputStreamWriter ops = new  OutputStreamWriter(fos);
		
	    //通过write写入文本内容
		ops.write("浩哥好帅啊啊");
	    //必须刷新之后才会有结果
		ops.flush();

追加

 //创建该对象时添加一个参数true,该参数表示追加
FileOutputStream fos = new FileOutputStream("src/a.txt",true);
//其他代码同上

打印流

作用: 方便输出流打印数据值

PrintStream(字节打印流)

输出磁盘文件内容

       //创建PrintStream对象
		PrintStream printStream = new PrintStream("src/a.txt");
		//通过print方法写入文件内容
		printStream.print("浩哥真的222222222222很帅");
		printStream.print("11111111111111浩哥真的很帅");
		//刷新
		printStream.flush();
		//关流
		printStream.close();
	}
	

PrintWriter(字符打印流)

PrintWriter类输出磁盘文件

	//创建PrintWriter对象
		PrintWriter pw = new PrintWriter("src/a.txt");
		//通过print方法写入文件内容
		pw.print("-----------------------");
		pw.print("+++++++++++++++++++++++");
		//刷新
		pw.flush();
		//关流
		pw.close();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,可以了解到Java IO流分为字节流和字符流两种类型。其中字节流以字节为单位进行读写,而字符流以字符为单位进行读写。下面是Java IO字节流的构造方法和使用方法: 1. InputStream类是所有字节输入流的父类,常用方法有: - read():从输入流中读取一个字节的数据。 - read(byte[] b):从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。 - skip(long n):跳过并丢弃输入流中的n个字节数据。 - available():返回输入流中可以被读取的字节数。 2. FileInputStream类是InputStream类的子类,常用方法有: - FileInputStream(String name):创建一个文件输入流,以读取具有指定名称的文件。 - read():从输入流中读取一个字节的数据。 - read(byte[] b):从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。 - skip(long n):跳过并丢弃输入流中的n个字节数据。 - available():返回输入流中可以被读取的字节数。 3. FileOutputStream类是OutputStream类的子类,常用方法有: - FileOutputStream(String name):创建一个文件输出流,以写入具有指定名称的文件。 - write(int b):将指定的字节写入此文件输出流。 - write(byte[] b):将b.length个字节从指定的字节数组写入此文件输出流中。 - flush():刷新此输出流并强制任何缓冲的输出字节被写出。 下面是一个Java IO字节流复制文件的示例代码: ```java public static void main(String[] args) { try { // 创建要复制文件的字节输入流 InputStream inp = new FileInputStream("/Users/chenyq/Documents/learn_Java/code/file-io-app/src/test.pdf"); // 创建目标路径的字节输出流 OutputStream oup = new FileOutputStream("/Users/chenyq/Documents/newtest.pdf"); // 使用文件输入流获取要复制文件的全部数据的字节数组 byte[] arr = inp.readAllBytes(); // 使用文件输出流将字节数组写入目标文件 oup.write(arr); System.out.println("复制成功!"); // 释放资源 inp.close(); oup.close(); } catch (IOException e) { e.printStackTrace(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值