要点:
掌握BufferedReader类的使用
掌握键盘输入的基本形式
Buffer:表示缓冲区的。之前的StringBuffer,缓冲区中的内容可以更改,可以提高效率。
如果想接收任意长度的数据,而且避免乱码的产生,就可以使用BufferedReader。
public class BufferedReader extends Reader
因为输入的数据有可能出现中文,所以此处使用字符流完成
BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中。
1、public BufferedReader(Reader in) 构造方法 接收一个Reader类的实例
2、public String readLine() throws IOException 一次性从缓冲区中将内容全部读取进来。
System.in本身表示的是InputStream(字节流),现在要求接收的是一个字符流,需要将字节流转为字符流才可以,InputStreamReader。
BufferedReader接收键盘输入时实例化如下:
此时就可以给出键盘输入数据的标准格式。
import java.io.* ; public class BufferedReaderDemo01{ public static void main(String args[]){ BufferedReader buf = null ; // 声明对象 buf = new BufferedReader(new InputStreamReader(System.in)) ; // 将字节流变为字符流 String str = null ; // 接收输入内容 System.out.print("请输入内容:") ; try{ str = buf.readLine() ; // 读取一行数据 }catch(IOException e){ e.printStackTrace() ; // 输出信息 } System.out.println("输入的内容为:" + str) ; } };
不仅可以接收键盘输入,还可以将文件中的内容读取到缓冲区之中 然后调用readLine()方法将缓冲区中的全部内容转为字符串。实例如下:
在d盘根目录下有一个test.txt文件内容如下:
代码读取如下:
import java.io.* ; public class BufferedReaderDemo01{ public static void main(String args[])throws IOException{ BufferedReader buf = null ; // 声明对象 buf = new BufferedReader(new FileReader(new File("D:"+File.separator+"test.txt"))) ; // 将字节流变为字符流 String str = null ; // 接收输入内容 System.out.print("请输入内容:") ; try{ str = buf.readLine() ; // 读取一行数据 }catch(IOException e){ e.printStackTrace() ; // 输出信息 } System.out.println("输入的内容为:" + str) ; } };
编辑test.txt 如下所示:
import java.io.* ; public class BufferedReaderDemo01{ public static void main(String args[])throws IOException{ BufferedReader buf = null ; // 声明对象 buf = new BufferedReader(new FileReader(new File("D:"+File.separator+"test.txt"))) ; // 将字节流变为字符流 String str1 = null ; // 接收输入内容 String str2 = null ; // 接收输入内容 try{ str1 = buf.readLine() ; // 读取一行数据 str2 = buf.readLine() ; // 读取一行数据 }catch(IOException e){ e.printStackTrace() ; // 输出信息 } System.out.println("读取第一行的内容为:" + str1) ; System.out.println("读取第二行的内容为:" + str2) ; } };
如果要全部读取文件的中的内容有如下两种方法:
方法一:使用StringBuffer类不停的连接readLine()从每次读取的一行内容,直至读取的为null为止。然后进行输出。
方法二:使用StringBuffer类不停的连接read()方法读取到的每一个数字转化后的字符。然后进行输出。
再次不在赘述。
个人感觉,还是先系统的了解一些各种类的作用,等到具体开发时再查看API文档,就能直接找到自己所需要类的方法。