Java学习之十一 Java流(Stream) 文件 File 和IO
Java.io包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。
Java.io包中的流支持很多格式,比如基本类型、对象、本地化字符集等等;
一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。
Java为I/O提供了强大的而灵活的支持,使其更广泛的应用到文件传输和网络编程上。
读取控制台输入
System.in
BufferedReader对象创建一个字符流
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedReader 对象创建后,我们可以使用read()读取一个字符,或者用readLine()方法读取一个字符串。
从控制台读取字符输入
int read() throws IOException
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char c = (char) br.read();
System.out.println(c);
从控制台读取字符串
readLine()
String readLine() throws IOException
// 使用 System.in 创建 BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
System.out.println(str);
Java Scanner类
java.util.Scanner 是 java5的新特性。
Scanner s= new Scanner(System.in);
Scanner scan = new Scanner(System.in);
System.out.println("next()方法接收数据:");
if (scan.hasNext())
{
String str1= scan.next();
System.out.println("next输入的数据为:" +str1);
}
System.out.println("nextLine()方法接收数据:");
int i=0;
do {
i++;
if (scan.hasNextLine())
{
String str1= scan.nextLine();
System.out.println("nextLine输入的数据为:" +str1);
}
}
while(i<2);
scan.close();
next() 与nextLine()区别
next():
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
nextLine():
- 以Enter未结束符,也就是nextLine()方法返回的是输入回车之前的所有字符
- 可以获得空白
控制台输出
PrintStream 继承了 OutputStream类,并且实现了方法 write()
void write(int byteval)
注意:write() 方法不经常使用