(javaio流与文件)Buffer (带缓冲区的)input output writer reader +(键盘输入)

BufferedInputStream;
BufferedOutputStream;

BufferedWriter;带缓冲区的字符输入流
BufferedReader;带缓存区的字符输出流

java.io.Reader
java.io.BufferedReader
构造方法(summary filed):BufferedReader(reader in);
所以在使用BufferedReader之前,要先创建Reader,但是记住Reader是一个抽象类,用他的子类FileReader来实例化

import java.io.*;
public class BufferReaderTest {

	public static void main(String[] args)  throws Exception{
		//创建一个带有缓冲区的字符输入流
		FileReader n1 = new FileReader("D:\\eclispe\\Io流\\src\\fileReader\\FileReaderTest.java");//创建一个文件字符输入流
		BufferedReader n2 = new BufferedReader(n1);//包装,将文件字符输入流包装成带有缓冲区的字符输入流
		
		/*
		 * 根据流出现的位置,流又可以分为:包装流或者处理流 和 节点流 FileReader n1 节点流 BufferedReader n2 包装流
		 */
		
		//开始读
		String temp = null;
		while((temp = n2.readLine())!=null) {
			System.out.println(temp); //n2.readLine()读一行,但是行尾不会带换行符,所以如果用System.out.print();输出的时候读到不同行都不会换行,会显示在一行
			
		}
		
		//关闭的时候,只需要关闭最外层的包装流。(这里有一个装饰者模式(一种设计模式))
		n2.close();
		
	}

}

字节到字符的转换,如果想把一个字节输入流放入BufferedRead中,涉及到字节流转字符流

InputStreamReader :字节转字符的转换流

//字节到字符的转换,如果想把一个字节输入流放入BufferedRead中,涉及到字节流转字符流
		FileInputStream f1 = new FileInputStream("D:\\eclispe\\Io流\\src\\fileReader\\FileReaderTest.java");
		
		//输入字节流转输入字符流 InputStreamReader
		InputStreamReader f2 = new 	InputStreamReader(f1);
		//放入缓冲区
		BufferedReader f3 = new BufferedReader(f2);
		
		//简易写法
		BufferedReader f4 = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\eclispe\\Io流\\src\\fileReader\\FileReaderTest.java")));
		
		String ns = null;
		while((ns = f3.readLine())!=null) {
			System.out.println(ns);
		}
		
		
		//关闭掉最外层的流即可
		f3.close();
		
	}

接收用户键盘输入

class Test{
	public static void main(String[] args){
		//传统的方法
		//System下的静态方法 in,会返回一个InputStream
		Scanner sr = new Scanner(System.in);
		sr.next();  //Scanner下的next方法,会返回一个字符串,返回我们输入的字符串

		//使用BufferedReader来接收用户的输入
		BufferedReader se = new BufferedReader(new InputStreamReader(System.in));
		
		//接收每次接收一行
		String sd =se.readLine();
		
		System.out.println(sd);

		以上传统方法和现在方法相比:比如输入hello world
		传统只会输出hello		因为以‘空格’作为区分
		新方法会输出hello world  因为一次读一行

		
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值