java IO流_打印流_三个常量_练习

package IO流_打印流;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.PrintStream;
import java.util.Scanner;

/**

  • 三个常量
  • 1.System.in 输入流 ;标准的键盘输入
  • 2.System.out 输出流
  • 3.System.err//err错误;系统报出错误信息提示
  • 4.从定向输入:重定向
  •  a) set.In()
    
  •  b) set.Out()
    
  •  c) set.Err()
    
  • 5.在控制台输入
  •  a)FileDescriptor.in
    
  •  b)FileDescriptir.out
    
  •  c)FileDescriptir.err
    

*/
public class SystemDemo01 {

public static void main(String[] args) throws FileNotFoundException  {
	test();
	test1();
	test2();//处理异常
	test3();	
}

public static void test(){
	//测试;
	System.out.println("test"+"\n");//正常输出
	System.err.println("test");//功能一样但输出'test'系统会自动加个颜色
}
/**
 * 键盘输入
 */
public static void test1(){
	//常用键盘输入;Scanner也是处理流;程序已经封装好的
	Scanner sca  = new Scanner(System.in);
	System.out.println("请输入1");
	System.out.println(sca.nextLine());
	
	//另一种键盘输入
	InputStream is = System.in;
	System.out.println("请输入2");
	Scanner sc = new Scanner(is);
	System.out.println(sc.nextLine());
}
/**
 * //文件输入;使用Scanner
 * @throws FileNotFoundException
 */
public static void test2() throws FileNotFoundException{
	
	InputStream is2 = System.in;
	is2 = new BufferedInputStream(//BufferedInputStream输入缓冲流
			new FileInputStream("e:/xp/test/print.txt"));//FileInputStream文件输入流
	//System.out.println("请输入3");//到这里是直接转到文件夹内容;可以省略
	Scanner sc2 = new Scanner(is2);
	System.out.println(sc2.nextLine());
}
/**
 * 重定向输入:直接指向文件而不是从控制台输入或键盘输入;系统默认的是键盘或控制台
 * @throws FileNotFoundException 
 */
public static void test3() throws FileNotFoundException{
	System.out.println("System.out.println这是系统默认的方法;输出到控制台");
	
	//从控制台转向文件
	System.setOut(new PrintStream(//PrintStream打印流
			new BufferedOutputStream(//BufferedOutputStream缓冲输出流
					new FileOutputStream("e:/xp/test/print.txt")),true));//FileOutputStream文件输出流
	//打印存放到文件里
	System.out.println("控制台没有显示输出;已经直接输出到文件e:/xp/test/print.txt;文件没有内容是系统自动刷新");//在new BufferedOutputStream(,true)里加true
	//如果不想在控制台显示输入的内容;在文件看的方法就是这样操作
	System.out.println("如果不想在控制台显示输入的内容;在文件看的方法就是这样操作");
	
	//重新回控制台显示
	System.setOut(new PrintStream(//PrintStream打印流
			new BufferedOutputStream(//BufferedOutputStream缓冲输出流
					new FileOutputStream(FileDescriptor.out)),true));//FileOutputStream文件输出流
	System.out.println("重新回到控制台了");
}

}
//结果-------------------------------------
//控制台显示
在这里插入图片描述
//文件内容显示
在这里插入图片描述

展开阅读全文
©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读