System对IO的三种支持:
System.out重定向
System.err重定向
System.in
System.in重定向
System.out
System.errSystem.in
在C语言中叫标准输出,标准错误和标准输入
System.out及System.err的区别 输入、输出重定向
System.out
package com.systemio.test;
import java.io.IOException;
import java.io.OutputStream;
//使用outPutStream向屏幕输出
public class SystemOutDemo {
public static void main(String[] args) {
//输出流向屏幕上输出
OutputStream out = System.out;
try{
out.write("Hello World!".getBytes());
}catch (IOException e) {
e.printStackTrace();
}
try {
//关闭输出流
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out重定向
package com.systemio.test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
// 标准输出重定向到文件中
public class SystemOutDupDemo {
/**
* @param args
*/
public static void main(String[] args) {
// 将标准输出重定向到文件
try {
System.setOut(new PrintStream(new FileOutputStream("D:"+java.io.File.separator+"StdOut.txt")));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("must print at screen!\n");
System.out.println("\nSystemOutDupDemo");
}
}
System.err
package com.systemio.test;
// 创造错误,标准错误打印
public class SystemErrDemo {
public static void main(String[] args) {
String str = "SURRENDER";
//OutputStream outputStream = System.err;
try {
System.out.println(Integer.parseInt(str));
//outputStream.write("err stream".getBytes());
} catch (NumberFormatException e) {
System.err.println("The Exception "+e);
}
}
}
System.err重定向
package com.systemio.test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.text.SimpleDateFormat;
import java.util.Date;
// 标准错误重定向到错误文件
public class SystemErrDupDemo {
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //记录错误发生时间的
try {
//将错误流重定向到 文件中
System.setErr(new PrintStream(new FileOutputStream("D:"+java.io.File.separator+"Err.txt")));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
System.err.println(df.format(new Date())+": "+e1);
}
String str = "hello" ; // 声明一个非数字的字符串
try {
// 转换出现错误--制造错误
System.out.println(Integer.parseInt(str)) ;
} catch (Exception e) {
System.err.println(df.format(new Date())+": "+e);
}
System.out.println("\nSystemErrDupDemo\n");
}
}
System.in
package com.systemio.test;
import java.io.InputStream;
// 从标准输入上读取内容,打印到标准输出上
public class SystemInDemo {
public static void main(String[] args) throws Exception {
// 从键盘接收数据
InputStream input = System.in;
// 开辟空间,做接收缓存
byte b[] = new byte[1024];
// 提示输入
System.out.println("请输入内容:");
// 读取到的长度
int nread = input.read(b);
// 打印读取到的内容
System.out.println("输入的内容为:\n"+new String(b,0,nread));
// 关闭输入流
input.close();
}
}
System.in重定向
package com.systemio.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class SystemInDupDemo {
public static void main(String[] args) throws IOException {
//设置输入重定向
System.setIn(new FileInputStream("D:"+File.separator+"inputDemo.txt"));
//从文件接收数据
InputStream input = System.in;
//开辟缓存
byte b[] = new byte[1024];
//接受数据
int nread = input.read(b);
if(nread > 0){
System.out.println("输入的内容为:"+new String(b,0,nread));
}
//关闭输入流
input.close();
}
}