java io重定向,java中的标准重定向标准IO_java标准IO_java构建器_课课家
java 1.1在System类中添加了特殊的方法,允许我们重新定向标准输入、输出以及错误IO流。此时要用到下述简单的静态方法调用:
setIn(InputStream)
setOut(PrintStream)
setErr(PrintStream)
如果突然要在屏幕上生成大量输出,而且滚动的速度快于人们的阅读速度,输出的重定向就显得特别有用。在一个命令行程序中,如果想重复测试一个特定的用户输入序列,输入的重定向也显得特别有价值。下面这个简单的例子展示了这些方法的使用:
//: Redirecting.java
// Demonstrates the use of redirection for
// standard IO in Java 1.1
import java.io.*;
class Redirecting {
public static void main(String[] args) {
try {
BufferedInputStream in =
new BufferedInputStream(
new FileInputStream(
"Redirecting.java"));
// Produces deprecation message:
PrintStream out =
new PrintStream(
new BufferedOutputStream(
new FileOutputStream("test.out")));
System.setIn(in);
System.setOut(out);
System.setErr(out);
BufferedReader br =
new BufferedReader(
new InputStreamReader(System.in));
String s;
while((s = br.readLine()) != null)
System.out.println(s);
out.close(); // Remember this!
} catch(IOException e) {
e.printStackTrace();
}
}
} ///:~
这个程序的作用是将标准输入同一个文件连接起来,并将标准输出和错误重定向至另一个文件。
这是不可避免会遇到“反对”消息的另一个例子。用-deprecation标志编译时得到的消息如下:
Note:The constructor java.io.PrintStream(java.io.OutputStream) has been deprecated.
注意:不推荐使用构建器java.io.PrintStream(java.io.OutputStream)。
然而,无论System.setOut()还是System.setErr()都要求用一个PrintStream作为参数使用,所以必须调用PrintStream构建器。所以大家可能会觉得奇怪,既然Java 1.1通过反对构建器而反对了整个PrintStream,为什么库的设计人员在添加这个反对的同时,依然为System添加了新方法,且指明要求用PrintStream,而不是用PrintWriter呢?毕竟,后者是一个崭新和首选的替换措施呀?这真令人费解。
java io重定向,java中的标准重定向标准IO_java标准IO_java构建器_课课家相关推荐
- java io ioexception,java.io.IOException
catch(java.io.IOException e){ ECLIPSE下LWUIT问题啊??java.lang.ClassNotFoundException'>java.lang.Class ...
- Java IO篇 Java IO编程
Java IO 一.java io 概述 1.1 相关概念 二.Java IO类库的框架 2.1 Java IO的类型 2.2 IO 类库 三.Java IO的基本用法 3.1 Java IO :字节 ...
- java遍历文件和归类_java读取文件的两种方法:java.io和java.lang.ClassLoader
java读取文件的两种方法:java.io和java.lang.ClassLoader 什么时候使用java.io,什么时候使用java.lang.ClassLoader呢? (注:要是之前读xml文 ...
- Sqoop进行导入数据到Hive时报错:ERRORtool.ImportTool:Importfailed:java.io.IOException:java.lang.ClassNotFoundExc
项目场景: 使用版本:Sqoop1.4.7.hive3.1.2 问题描述 在使用Sqoop进行MySQL数据导入到Hive的过程中出现一下错误提示.ERRORtool.ImportTool:Impor ...
- java.lang.Exception: java.io.IOException: java.lang.ClassNotFoundException: user_log
java.lang.Exception: java.io.IOException: java.lang.ClassNotFoundException: user_log java.lang.Excep ...
- hive命令出现问题Failed with exception Java.io.IOException:java.lang.IllegalArgumentException: java.NET.URI
转载自 hive命令出现问题Failed with exception Java.io.IOException:java.lang.IllegalArgumentException: java.NE ...
- 解决Caused by: java.io.IOException: java.io.IOException: error=12, Cannot allocate memory
最近公司一台线上服务器的hbase的regionserver挂掉之后起不起来报错OOM. 这台机器同时装有cassandra,于是停掉cassandra释放内存,重启regionserver失败,同时 ...
- 启动nacos-server报错:java.io.IOException: java.lang.IllegalArgumentException: db.num is null
问题描述 运行nacos文件的startup.cmd启动nacos-server时报错:java.io.IOException: java.lang.IllegalArgumentException: ...
- java httpclient 重定向_httpclient 中post请求重定向
背景:使用httpclient 的post请求进行登录,需要重定向登录,请求重定向后的地址 在httpclient中post请求不像get请求自己可以重定向,实现方式是 判断post请求返回码是否是3 ...
最新文章
- tensorflow-gpu
- 读书:历史 -- 奥斯曼帝国六百年
- linux系统调用 ftruncate设置文件大小
- debian下编译安装poco
- json字符串与对象互相转换
- PHP第五周答案,算法设计与分析第五周作业——Word Ladder
- DELPHI实现游戏内存的修改
- 用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
- 发布服务器 bugzilla, streber 数据库备份方案
- 初识python多线程
- linux 每天_每天使用Linux的11种惊人方式
- 苹果M1芯片:如何开启一个时代
- C#调用java类、jar包方法
- python isodd()判断奇偶_EXCEL VBA:Iseven Isodd 判断奇偶
- javascript css函数一设置/读取对象的属性(Style对象与CurrentStyle对象、getComputedStyle)及其小案例
- 第四方支付平台程序源码_云计费系统源码
- C++学习(四九二)cmake file的GLOB和GLOB_RECURSE
- Win10-C盘清理方法全攻略(从剩余9G到剩49G)
- 【obs-studio开源项目从入门到放弃】obs-studio项目简介和架构
- win11(amd)+cuda+cudnn+pytorch安装过程
热门文章
- 腾讯云推出首款自研服务器星星海;苹果新款Mac Pro整套配齐超30万;Fedora 31稳定版发布|极客头条...
- 顶级开发人员最容易轻视的五大重要技能!
- 频遭黑客攻击的物联网,这里有妙招!
- 意大利不禁止华为;13 款 5G 手机时间表公布;亚马逊 CEO 遭威胁 | 极客头条
- Python 的低性能问题是无法忽视的
- socket编程之 connect()函数
- java中子类与父类强制转换_java中父类强制转换成子类的错觉
- Kafka必须掌握的核心技术:Java基础入门期末考试
- pyspark.sql写入mysql_将pyspark dataframe写入MySQL数据库时出错
- pythonnumpy详解_Python精讲Numpy基础,大牛笔记详细解释