System类对IO的支持

System对IO的三种支持:

System.out

System.err

System.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();
	}

}


你可能感兴趣的:(java,IO,System,系统类)