Java输入输出(2)--IO流

2017-12-05  本文已影响0人  Kylin824

Java的IO流

字节流和字符流

节点流和处理流

InputStream和Reader的实现类

读取文件输入流的方式

  1. 以要读取的文件名为参数实例化FileInputStream或FileReader对象
  2. 定义byte[]或char[]字符数组,用来存储读入的流
  3. 循环语句中使用read()方法赋值给2中的数组,直到read()方法返回-1则读完全部

关闭文件输入流

OnputStream和Writer的实现类

写入文件输出流的方式

  1. 以要写入的文件名为参数实例化FileOnputStream或FileWriter对象
  2. 定义byte[]或char[]字符数组,用来存储写入的流
  3. 循环语句中使用write()方法赋值给2中的数组

输出流同样需要关闭

处理流:包装节点流的高级流

处理流分类

转换流:用于实现字节流转换为字符流 (没有字符流转换为字节流)

Sytem.in代表标准输入,但这个标准输入流是InputStream(节点流)的实例,不方便用,而且键盘输入都是文本内容,所以使用InputStreamReader(处理流)将其包装为字符输入流,普通的Reader读取依然不够方便,所以将普通的Reader包装为BufferedReader(处理流),利用BufferedReader的readLine()方法可以一次读取一行内容

try (
    InputStreamReader reader = new InputStreamReader(System.in);//节点流包装为转换流(处理流)
    BufferedReader br = new BufferedReader(reader);//转换流包装为更方便读取的缓冲流,一次可读取一行
    )
    {
    String line = null;
    while ((line = br.readLine()) != null)
    {
        if (line.equals("exit"))
        {
            System.exit(1);
        }
            System.out.println("输出内容为:" + line);
        }
    }
catch (IOException ioe)
{
    ioe.printStackTrace();
}

由于BufferedReader具有一个readLine()方法,可以非常方便地一次读入一行内容,所以经常把读取文本内容的输入流包装成BufferedReader

推回输入流:

重定向标准输入/输出

上一篇 下一篇

猜你喜欢

热点阅读