文章目录
- 1. 相关概念
- 2. 举例与练习
- 2.1. 举例
- 2.2. 练习
1. 相关概念
System.in
和 System.out
分别代表了系统标准的输入和输出设备,默认输入设备是键盘,输出设备是显示器。
System.in
的类型是 InputStream
System.out
的类型是 PrintStream ,其是 OutputStream 的子类 FilterOutputStream的子类
通过 System 类的 setIn
, setOut
方法对默认设备进行改变。
public static void setIn(InputStream in)
public static void setOut(PrintStream out)
2. 举例与练习
2.1. 举例
举例1:
package day13;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/**
* 标准输入和输出流
* @author 14532
*
*/
public class Test3 {
public static void main(String[] args) {
try {
Test3.testSystemIn();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 标准的输入流
* @throws Exception
*/
public static void testSystemIn() throws Exception {
//创建一个接收键盘输入数据的输入流
InputStreamReader is = new InputStreamReader(System.in);
//把输入流放到缓冲流里
BufferedReader br = new BufferedReader(is);
String str = "";//定义一个临时接收数据的字符串
while((str = br.readLine()) != null) {
System.out.println(str);
}
br.close();
is.close();
}
}
上面这段代码运行之后,可以在控制台输入任意字符,输入完毕后点击回车键,控制台会输出刚才输入的内容
如下所示:
2.2. 练习
练习题:
把控制台输入的内容写到指定的txt文件中,当接收到字符串over,就结束程序的运行。
package day13;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.InputStreamReader;
/**
* 标准输入和输出流
* @author 14532
*
*/
public class Test3 {
public static void main(String[] args) {
try {
Test3.write2TXT();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 把控制台输入的内容写到指定的txt文件中,当接收到字符串over,就结束程序的运行。
*/
public static void write2TXT() throws Exception {
//创建一个接收键盘输入数据的输入流
InputStreamReader is = new InputStreamReader(System.in);
//把输入流放到缓冲流里
BufferedReader br = new BufferedReader(is);
BufferedWriter out = new BufferedWriter(new FileWriter("D:\\java_doc\\eclipse-workspace\\demo\\src\\day13\\tt7.txt"));
String line = "";
while((line = br.readLine()) != null) {
if(line.equals("over")) {
break;
}
//读取的每一行都写到指定的txt文件
out.write(line);
}
out.flush();
out.close();
br.close();
is.close();
}
}
当换行后输入“over”后,保存输入的字符,程序结束运行。