Java 输入/输出——重定向标准输入/输出
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 输入/输出——重定向标准输入/输出,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4140字,纯文字阅读大概需要6分钟。
内容图文
在System类中提供了如下三个重定向标准输入/输出方法。
static void
|
setErr?(PrintStream err)
|
Reassigns the "standard" error output stream.(重定向“标准”错误输出流)
|
---|---|---|
static void
|
setIn?(InputStream in)
|
Reassigns the "standard" input stream.(重定向“标准”输入流)
|
static void
|
setOut?(PrintStream out)
|
Reassigns the "standard" output stream.(重定向“标准”输出流)
|
static void
|
setProperties?(Properties props)
|
Sets the system properties to the
Properties argument. |
static String
|
setProperty?(String key,String value)
|
Sets the system property indicated by the specified key.
|
static void
|
setSecurityManager?(SecurityManager s)
|
Sets the System security.
|
下面程序通过重定向标准输出流,将System.out的输出重定向到文件输出,而不是在屏幕上输出。
首先回顾PrintStream的构造器:
Constructor | Description |
---|---|
PrintStream?(File file)
|
Creates a new print stream, without automatic line flushing, with the specified file.
|
PrintStream?(File file, String csn)
|
Creates a new print stream, without automatic line flushing, with the specified file and charset.
|
PrintStream?(OutputStream out)
|
Creates a new print stream.
|
PrintStream?(OutputStream out, boolean autoFlush)
|
Creates a new print stream.
|
PrintStream?(OutputStream out, boolean autoFlush,String encoding)
|
Creates a new print stream.
|
PrintStream?(String fileName)
|
Creates a new print stream, without automatic line flushing, with the specified file name.
|
PrintStream?(String fileName, String csn)
|
Creates a new print stream, without automatic line flushing, with the specified file name and charset.
|
1 package com.zyjhandsome.io; 2 3 import java.io.*; 4 5publicclass RedirectOut { 6 7publicstaticvoid main(String[] args) { 8// TODO Auto-generated method stub 9try { 10 PrintStream ps = new PrintStream(new FileOutputStream("D:\\User_zhaoyingjun\\JavaSE\\Test\\RedirectOut.log")); 11// 将标准的输出重定向到ps输出流12 System.setOut(ps); 13// 向标准输出输出一个字符串14 System.out.println("普通字符串"); 15// 向标准输出输出一个对象16 System.out.println(new RedirectOut()); 17 } catch (FileNotFoundException e) { 18// TODO Auto-generated catch block19 e.printStackTrace(); 20 } 21 } 22 }
在“Redirect.log”文件中输出结果:
1 普通字符串 2 com.zyjhandsome.io.RedirectOut@71be98f5
下面程序重定向标准输入流,从而可以将System.in重定向到指定文件,而不是键盘输入。
1 package com.zyjhandsome.io; 2 3 import java.io.*; 4import java.util.*; 5 6publicclass RedirectIn { 7 8publicstaticvoid main(String[] args) { 9// TODO Auto-generated method stub10try { 11 FileInputStream fis = new FileInputStream("D:\\User_zhaoyingjun\\JavaSE\\Java_Eclipse_Workspace\\HelloWorld2\\src\\com\\zyjhandsome\\io\\RedirectIn.java"); 12// 将标准输入流 重定向到fis输入流13 System.setIn(fis); 14// 使用System.in创建Scanner对象,用于获取标准输入15 Scanner sc = new Scanner(System.in); 16// 增加下面一行只把回车作为分隔符17 sc.useDelimiter("\n"); 18// 判读是否还有下一个输入项19while (sc.hasNext()) 20 { 21// 输出输入项22 System.out.println("键盘输入的内容是:" + sc.next()); 23 } 24 } catch (FileNotFoundException e) { 25// TODO Auto-generated catch block26 e.printStackTrace(); 27 } 28 } 29 }
输出结果:
1 键盘输入的内容是:package com.zyjhandsome.io; 2 3键盘输入的内容是: 4 5 键盘输入的内容是:import java.io.*; 6 7 键盘输入的内容是:import java.util.*; 8 9键盘输入的内容是: 1011 键盘输入的内容是:publicclass RedirectIn { 1213键盘输入的内容是: 1415 键盘输入的内容是: publicstaticvoid main(String[] args) { 1617 键盘输入的内容是: // TODO Auto-generated method stub1819 键盘输入的内容是: try { 2021 键盘输入的内容是: FileInputStream fis = new FileInputStream("D:\\User_zhaoyingjun\\JavaSE\\Java_Eclipse_Workspace\\HelloWorld2\\src\\com\\zyjhandsome\\io\\RedirectIn.java"); 2223 键盘输入的内容是: // 将标准输入流 重定向到fis输入流2425键盘输入的内容是: System.setIn(fis); 2627 键盘输入的内容是: // 使用System.in创建Scanner对象,用于获取标准输入2829 键盘输入的内容是: Scanner sc = new Scanner(System.in); 3031 键盘输入的内容是: // 增加下面一行只把回车作为分隔符3233 键盘输入的内容是: sc.useDelimiter("\n"); 3435 键盘输入的内容是: // 判读是否还有下一个输入项3637 键盘输入的内容是: while (sc.hasNext()) 3839键盘输入的内容是: { 4041 键盘输入的内容是: // 输出输入项4243 键盘输入的内容是: System.out.println("键盘输入的内容是:" + sc.next()); 4445键盘输入的内容是: } 4647 键盘输入的内容是: } catch (FileNotFoundException e) { 4849 键盘输入的内容是: // TODO Auto-generated catch block5051键盘输入的内容是: e.printStackTrace(); 5253键盘输入的内容是: } 5455键盘输入的内容是: } 5657 键盘输入的内容是:}
上面程序创建了一个FileInputStream输入流,并使用System的setIn()方法将系统标准输入重定向到该文件输入流。运行上面程序,程序不会等待用户输入,而是直接输出了RedirectIn.java文件的内容,这表明程序不再使用键盘作为标准输入,而是使用RedirectIn.java文件作为标准输入源。
原文:https://www.cnblogs.com/zyjhandsome/p/9696794.html
内容总结
以上是互联网集市为您收集整理的Java 输入/输出——重定向标准输入/输出全部内容,希望文章能够帮你解决Java 输入/输出——重定向标准输入/输出所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。