Java IO学习笔记七
- 2019 年 12 月 31 日
- 笔记
文章目录
System对IO的支持
System
是系统的类,其中的方法都是在控制台的输入和输出,但是通过重定向也是可以对文件的输入输出System
中定义了标准输入、标准输出和错误输出流,定义如下:static PrintStream err
“标准”错误输出流。static InputStream in
“标准”输入流。static PrintStream out
“标准”输出流。
- 从上面的定义可以知道这里的返回值都是字节的输入和输出流,因此可以使用
PrintStream
接受这个返回值,然后利用其进行输出,同样的输入也是可以这样做,当然对于OutputStream
和InputStream
也是可以的,因为PrintStream
是继承OutputStream
System.out
System.out
是一个标准的输出流,可以使用PrintStream
和OutputStream
接收返回值,然后使用其进行标准的输出,实例如下
PrintStream printStream=System.out; //使用PrintStream //OutputStream outputStream=System.out; //使用OutputStream String name="陈加兵"; int age=22; printStream.printf("姓名:%s,年龄:%s",name,age); //使用格式话的输出
其实我还是比较用
PrintStream
进行格式话的输出的
System.out
的重定向输出,可以使用这个将指定的内容输出到文件中,实例如下:
try { File file=new File("/tmp"+File.separator+"test"+File.separator+"test.txt"); System.setOut(new PrintStream(new PrintStream(file))); //设置重定向的文件 }catch (IOException e) { e.printStackTrace(); } System.out.println("陈加兵的个人博客");//向文件输入内容
System.in
- 这是一个标准输入流,可以使用
InputStream
来接受返回值,然后利用其进行输入,实例如下:
byte[] bytes=new byte[1024]; InputStream inputStream=System.in; //使用InputStream来接收这个返回值 try { inputStream.read(bytes); //读取控制台输入的字符串 }catch (IOException e) { e.printStackTrace(); } System.out.println(new String(bytes)); //输出
说实话这种控制台输入的方式不太好,还是使用原来的
Scanner
比较好
- System.in的重定向
byte[] bytes = new byte[1024]; File file = new File("/tmp" + File.separator + "test" + File.separator + "test.txt"); try { System.setIn(new FileInputStream(file)); //设置重定向 System.in.read(bytes); //读取文件中字节数据 } catch (IOException e) { e.printStackTrace(); } System.out.println(new String(bytes)); //打印出文件中的内容
System.err
- 这是一个标准错误输出流,在
IDEA
中输出的内容是红色的,和System.out
输出的格式一样,只是颜色不一样,因为这里的重定向不太重要也不太常用,这里就不再详细说了,详情请看帮助文档
System.exit
public static void exit(int status)
- 终止当前的
java虚拟机
,参数用作状态码;根据惯例,非0
的状态码表示异常终止,如System.exit(0)
参考文章
- http://www.cnblogs.com/lich/archive/2011/12/11/2284155.html
- http://ifeve.com/java-io-system-in-system-out-system-err/