System类对IO的支持
来源:互联网 发布:c语言入门基础教程 编辑:程序博客网 时间:2024/05/14 13:33
System类对IO的支持
*System.out 一般的信息是愿意展示给用户看见的
但是在输入中文的时候就无法正确取读了,因为每次读的是一个字节,应该按照整体取读,那么如果想要完成更好的读取操作,则只能使用后续的BufferReader类完成。
System类中存在着三个常量:
No. 常量 描述 public static finalPrintStream out 表示的是一个标准的输出,输出的位置是显示器 public static final PrintStream err表示错误,错误的输出 public static final InputStream in表示的是键盘的输入,标准输入1、System.out
System.out是PrintStream的实例,常用的方法就是向屏幕上打印信息,当然如果使用System.out的话也可以直接为OutputStream实例化。
package com.demo.io;import java.io.IOException;import java.io.OutputStream;public class SystemOutDemo {public static void main(String[] args) throws IOException {//此时具备了向屏幕输出的能力OutputStream outputStream = System.out;//输出内容outputStream.write("hello world".getBytes());//关闭流outputStream.close();}}
2、System.err 表示错误输出
package com.demo.io;public class SystemErr {public static void main(String args[]){try {Integer.parseInt("hello");} catch (NumberFormatException e) {System.out.println("out输出结果是:"+e);System.err.println("err输出结果是:"+e);}}}
*System.out 一般的信息是愿意展示给用户看见的
*System.err 一般的信息是不愿意展示给用户看见的
3、System.in
System.in 实际上表示的是一个键盘的输入,使用此操作,可以完成键盘输入数据功能。
package com.demo.io;import java.io.IOException;import java.io.InputStream;public class SystemINDemo {public static void main(String args[]) throws IOException{InputStream inputStream = System.in;//准备键盘输入数据byte[] b = new byte[5];System.out.println("请输入内容:");int len = inputStream.read(b);System.out.println("输入的内容是:"+new String(b, 0, len));inputStream.close();}}此时已经实现了键盘输入的功能,但是此过程中在使用时会存在长度限制而且输入中文的时候也会存在问题。此时就可以通过另一种方式,不指定大小,边读边判断是否结束。
package com.demo.io;import java.io.IOException;import java.io.InputStream;public class SystemINDemo2 {public static void main(String args[]) throws IOException{InputStream inputStream = System.in;//准备键盘输入数据System.out.println("请输入内容:");int temp = 0; //接收内容StringBuffer buf = new StringBuffer();while((temp=inputStream.read())!=-1){//转型char c = (char)temp;//判断是否是回车if(c=='\n'){//退出循环break;}buf.append(c);}System.out.println("输入的内容是:"+buf);inputStream.close();}}此时,数据读取的时候没有长度限制了。(但是中文乱码了)
但是在输入中文的时候就无法正确取读了,因为每次读的是一个字节,应该按照整体取读,那么如果想要完成更好的读取操作,则只能使用后续的BufferReader类完成。
输出、输入重定向
System.out 、System.err 都有固定的输出目标,都是屏幕
System.in有固定的输入目标,都是键盘
但是在System类中提供了一系列输入输出重定向的方法,可以改变System.out、System.err、System.in的输入输出位置。
*System.out重定向: public static void setOut(PrintStream out)
*System.err重定向: public static void setErr(PrintStream err)
*System.in重定向: public static void setIn(PrintStream in)
范例:验证输出重定向
package com.demo.io;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.PrintStream;/** * 重定向的例子 */public class RedirectSystemOutDemo {public static void main(String args[]) throws FileNotFoundException{File file = new File("g:"+File.separator+"demo.txt");System.setOut(new PrintStream(new FileOutputStream(file)));System.out.println("hello world");}}
在开发中不建议System.err的输出位置,只建议修改System.out的输出位置
一般System.in的操作最好不要去修改
- IO-System类对IO的支持
- System类对IO的支持
- System类对IO的支持
- System类对IO的支持
- System类对IO(input/output)的支持
- java中System类对IO的支持
- Java IO操作——System类对IO的支持(System.out、System.err、System.in)
- Java IO学习笔记(八):System类对IO的支持
- 12. JAVA IO Party 2 (内存操作流、管道流、打印流、System类对IO的支持) ----- 学习笔记
- Java System 类对ID 的支持
- Java IO _System 类对IO的支持
- 【JAVA IO】_System类对IO的支持笔记
- 【JAVA IO】_System类对IO的支持笔记
- java IO(二):内存操作流、管道流、打印流、System对IO的支持、BufferedReader、Scanner
- 有关对文件的操作(System.IO)
- 利用System.IO中的Directory类对指定的目录进行遍历
- 利用System.IO中的Directory类对指定的目录进行遍历 "
- System.IO.FileSystemWatcher 类
- Js的Array对象的几个原型方法
- Windows Server 2008 R2 Standard下部署web遇到的问题
- 如何维护SQL Defalt Trace历史信息
- 解读LOTUS
- linux上端口映射的详细步骤
- System类对IO的支持
- JS获取最大值与最小值的方法
- Android根目录下面的sdcard和mnt文件夹下面的sdcard
- Android开发人员应避免的10个误区
- Restrictions用法
- Fedora14 源码安装qt4.7.0 PC版 和 arm版 过程 及问题解决(之三,续上)
- linux 下 解压缩ramdisk.img文件
- nagios学习笔记【4】--nrpe的安装和使用
- VisionMobile:2012年移动开发者经济报告(四):一、新格局看似尘埃落定(下)