java基础--输入与输出重定向(in,out,err的使用)
2011-09-22 22:41
615 查看
要点:
System.out与err是输出流,默认是输出到console。
system.in是输出流,默认是接收来自键盘的数据
实现要求:从键盘和文件readme.txt中读取数据,输出到console,输出到log.txt。
1、从readme.txt读取数据,输出到控制台和log.txt
运行结果:1.1 控制台截图:
2.2 log.txt内容截图:
2、从键盘读数据,输出到console和log.txt。
运行结果:
2.1 console截图:
2.2 log.txt的内容:
F6执行当前行,F8运行到下一断点,如果不想debug的话,一直按F8就可以了。
*******************************************************************华丽分割线**************************************************************************************
System.out和System.err已经被封装为PrintStream对象,可以直接使用。而System.in是一个未经封装InputStream,所以要想利用System.in读取文件前必须要对齐进行封装,一般封装为BufferedReader(便于readline()),这就要求利用InputStreamReader将System.in转换为Reader。
System.out与err是输出流,默认是输出到console。
system.in是输出流,默认是接收来自键盘的数据
实现要求:从键盘和文件readme.txt中读取数据,输出到console,输出到log.txt。
1、从readme.txt读取数据,输出到控制台和log.txt
import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintStream; import java.util.Scanner; public class in_out_err { public static void main(String[] args) throws IOException{ //从readme.txt读取数据,输出到console和log.txt BufferedInputStream in=new BufferedInputStream(new FileInputStream("c:\\readme.txt")); //创建缓冲输入流 System.setIn(in); BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));//将System.in封装为BufferReader,便于readline String s; while((s=stdin.readLine())!=null){ System.out.println(s); //输出到log.txt PrintStream out=System.out;//保存原输出流 PrintStream log=new PrintStream("c:\\log.txt"); //创建文件输出流 System.setOut(log); //设置使用新的输出流 System.out.println("以下信息应该出现在日志文件中:"+s); System.setOut(out); //恢复原有输出流 System.out.println("程序运行完毕,请查看日志文件"); } }}
运行结果:1.1 控制台截图:
2.2 log.txt内容截图:
2、从键盘读数据,输出到console和log.txt。
import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintStream; import java.util.Scanner; public class in_out_err { public static void main(String[] args) throws IOException{ //从键盘读取数据,输出到console上和log.txt Scanner scanner=new Scanner(System.in); //创建输入流扫描器
System.out.println("请输入你的***号:"); String id=scanner.nextLine(); //输出到console上 System.out.println(id); //输出到log.txt PrintStream out=System.out;//保存原输出流 PrintStream log=new PrintStream("c:\\log.txt"); //创建文件输出流 System.setOut(log); //设置使用新的输出流 System.out.println("以下信息应该出现在日志文件中"+id); System.setOut(out); //恢复原有输出流 也可以用log.close();实现 System.out.println("程序运行完毕,请查看日志文件"); } }
运行结果:
2.1 console截图:
2.2 log.txt的内容:
F6执行当前行,F8运行到下一断点,如果不想debug的话,一直按F8就可以了。
*******************************************************************华丽分割线**************************************************************************************
System.out和System.err已经被封装为PrintStream对象,可以直接使用。而System.in是一个未经封装InputStream,所以要想利用System.in读取文件前必须要对齐进行封装,一般封装为BufferedReader(便于readline()),这就要求利用InputStreamReader将System.in转换为Reader。
相关文章推荐
- JAVA---System.in与System.out(标准输入与输出)详解
- java.io.Console的使用以及重定向标准输出/输入
- shell基础-bash基本功能-输入输出重定向
- System.in与System.out(标准输入与标准输出)详解
- Java-输入输出基础(字节流)
- java基础八 [序列化和文件的输入/输出](阅读Head First Java记录)
- 黑马程序员:Java基础总结----字符字节转换流&system.in&out
- 【转】Java基础:System.out.println与System.err.println的区别
- FileOutputStream字节输出流和FileInputStream输入流(切记:out是输出到本地中,in是输入到程序中)这里介绍大文件和小文件的读取方式
- [导入]java中如何执行本地程序并捕获out和err输出
- 如何判断标准输入或输出是否经过了重定向,即是否在命令行上使用了“”?
- java基础(12)- java的输入/输出(IO)包(2)
- java重定向输入/输出
- java.io中的System.in、 System.out和System.err
- System.in与System.out(标准输入与标准输出)详解
- shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)
- JAVA基础类库——使用Scanner获取键盘输入
- 如何判断标准输入或输出是否经过了重定向,即是否在命令行上使用了“”?
- 【JAVA零基础入门系列】Day7 Java输入与输出
- 黑马程序员——Java基础——IO输入与输出_2