Java 流 ( Stream )

一个流可以理解为一个数据的序列

输入流表示从一个源读取数据,输出流表示向一个目标写数据

Java.io 包几乎包含了所有操作输入、输出需要的类

所有这些流类代表了输入源和输出目标

Java.io 包中的流支持很多种数据类型,比如:基本类型、对象、本地化字符集等等

读取控制台输入

Java 中的标准输入使用 System.in 表示

为了获得一个绑定到控制台的字符流,可以可以把 System.in 包装在一个 BufferedReader 对象中来创建一个字符流

BufferedReader br = new BufferedReader(new 
                      InputStreamReader(System.in));

BufferedReader 对象创建后,我们就可以使用 read() 方法从控制台读取一个字符,或者用 readLine() 方法读取一个字符串

从控制台读取多字符输入

可以使用 BufferedReader 对象的 read() 方法读取一个字符

int read() throws IOException

每次调用 read() 方法,它从输入流读取一个字符并把该字符作为整数值返回

当流结束的时候返回 -1

该方法抛出 IOException

下面的代码使用 read() 方法从控制台不断读取字符直到用户输入 "q"

// 使用 BufferedReader 在控制台读取字符

import java.io.*;

public class BRRead {

    public static void main(String args[]) throws IOException {

        char c;

        // 使用 System.in 创建 BufferedReader 
        BufferedReader br = new BufferedReader(new 
                       InputStreamReader(System.in));

        System.out.println("输入字符, 按下 'q' 键退出。");

        // 读取字符
        do {
            c = (char) br.read();
            System.out.println(c);
        } while(c != 'q');
    }
}

编译运行以上 Java 代码,输出结果如下

输入字符, 按下 'q' 键退出
twle
t
w
l
e
q
q

从控制台读取一行字符串

BufferedReader 对象的 readLine() 方法可以从标准输入读取一行字符串

String readLine( ) throws IOException

下面的代码用于读取和显示字符行直到输入了单词 "end"

import java.io.*;
public class BRReadLines {

    public static void main(String args[]) throws IOException {

        // 使用 System.in 创建 BufferedReader 
        BufferedReader br = new BufferedReader(new
                            InputStreamReader(System.in));
        String str;
        System.out.println("Enter lines of text.");
        System.out.println("Enter 'end' to quit.");

    do {
        str = br.readLine();
        System.out.println(str);
    } while(!str.equals("end"));
  }
}

编译运行以上 Java 代码,输出结果如下

Enter lines of text.
Enter 'end' to quit.
This is line one
This is line one
This is line two
This is line two
end
end

我们还可以使用使用 Java Scanner 类来获取控制台的输入

控制台输出

输出到控制台,其实我们之前已经做了无数次了,就是使用 print() 和 println() 完成

这些方法都由类 PrintStream 定义,System.out 是该类对象的一个引用

PrintStream 继承了 OutputStream 类,并且实现了方法 write()

void write(int byteval)

该方法将 byteval 的低八位字节写到流中

下面的范例使用 write() 把字符 "A" 和紧跟着的换行符输出到屏幕

import java.io.*;

public class WriteDemo {

    public static void main(String args[]) {

        int b;
        b = 'A';
        System.out.write(b);
        System.out.write('\n');
   }
}

编译运行以上范例,输出结果如下

A

write() 方法不经常使用,因为 print() 和 println() 方法用起来更为方便

Java 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2018 简单教程 twle.cn All Rights Reserved.