第16章-Java流(Steam、File、IO)

通过对前面第15章的学习我们已经对Java有了更进一步的了解。

现在我们来开始学习第16章Java流。

Java流包阔了IO、Steam、File:

Java.io包括了几乎所有的输入输出操作需要的类,而所有的这些流类也代表了输入源和输出目标。Java.io中的流同时也支持很多种格式,如:基本对象,类型,本地化字符集等。

流可以理解位一种数据的序列。输入流表示读取一个源的数据,输出流则表示向一个目标写入数据。由于Java为I/O提供了灵活的接口支持,使得Java被更为广泛的用于文件传输和网络编程中。

而本要讲的则是最基本的与流和I/O的相关功能。

读取控制台输入:

Java的控台由System.in来实现。

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

下面是创建BufferedReader的基本语法:

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

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

从控台读取多字符输入:

从BufferedReader对象读取一个字符需要使用read()方法,他的语法如下:

int read( ) throws IOException

我们每次调用的时候他就从输入流读取一个字符并将该字符作为整数值返回。当流结束的时候返回-1.

下面开始来用实例操作:

import java.io.*;
public class ARRead {
public static void main(String args[]) throws IOException {
char c;
// 使用 System.in 创建 BufferedReader
BufferedReader ar = new BufferedReader(new InputStreamReader(System.in));
System.out.println("输入字符, 按下 'q' 键退出。");
// 读取字符
do {
c = (char) br.read();
System.out.println(c);
} while (c != 'q');    }
}

从控台读取字符串:

从标准输入读取一个字符串索要使用的BufferedReader的readLine()方法。

语法如下:

String readLine( ) throws IOException

下面的程序直到输入单词‘end’结束:

import java.io.*;
public class ARReadLines {
public static void main(String args[]) throws IOException {
// 使用 System.in 创建 BufferedReader
BufferedReader ar = new BufferedReader(new InputStreamReader(System.in));
String str;
System.out.println("Enter lines of text.");
System.out.println("Enter 'end' to exit.");
do {
str = ar.readLine();
System.out.println(str);
} while (!str.equals("end"));
}
}

至于运行结果同学们可以自己测试。

讲完了控制台输入,接下来我们来讲讲控制台输出

之前我们讲到过控制台的输出由print()和PrintStream定义而System.out是这一类对象的一个引用。