版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40646143/article/details/84333042
System
-
该类继承自Object.
-
System
类包含几个有用的类字段和方法。 它不能被实例化。 -
System
类提供的System
包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。
static PrintStream |
err “标准”错误输出流 |
static InputStream |
in “标准”输入流。 |
static PrintStream |
out “标准”输出流。 |
下面来学习System几个常用的输入流与输出流
1),printStream 输出流
//输出到文件
public static void outFile() throws FileNotFoundException {
PrintStream stream = new PrintStream(
new BufferedOutputStream(
new FileOutputStream(
new File("C:/Users/晓电脑/Desktop/a.txt")
)
)
);
stream.print("aakfdjwa");
stream.close();
}
运行如下
2),利用Scanner可以把文件内容输出到控制台
//把文件内容输出到控制台
public static void outConsole() throws FileNotFoundException {
InputStream is;
is = new BufferedInputStream(new FileInputStream(new File("C:/Users/晓电脑/Desktop/a.txt")));
Scanner scanner = new Scanner(is);
System.out.println(scanner.nextLine());
}
运行如下
3),利用setOut 重新分配“标准”输出流。
//把控制台的内容重定向到文件
public static void redirectToFile() throws FileNotFoundException {
String str = "hello word";
System.setOut(
new PrintStream(
new FileOutputStream(
new File("C:/Users/晓电脑/Desktop/a.txt")
)));
System.out.println(str);
}
运行如下(控制台不会打印,而文件会显示)
文件如下
setOut俩次重定向 ,第一次先重定向到文件,然后再从文件重定向到控制台
public static void rediectToConsole() throws FileNotFoundException {
String str = "hello word";
//重定向到文件
System.setOut(
new PrintStream(
new FileOutputStream(
new File("C:/Users/晓电脑/Desktop/a.txt")
)));
System.out.println(str);
//重定向到控制台
//FileDescriptor.out 代表的就是控制台
//true 相当于flush
System.setOut(new PrintStream(
new BufferedOutputStream(
new FileOutputStream(FileDescriptor.out)
),true
)
);
System.out.println("你好啊 又回来了");
}
运行如下
控制台
文件