java io (下)
2017-02-11 19:41
225 查看
java 标准io与重定向
参考链接:
http://www.2cto.com/kf/201312/262036.html
一.标准io
Java程序可通过命令行参数与外界进行简短的信息交换,同时,也规定了与标准输入、输出设备,如键盘、显示器进行信息交换的方式。而通过文件可以与外界进行任意数据形式的信息交换。
1.命令行参数
[
1.
public class TestArgs {
2.
public static void main(String[] args) {
3.
for (int i = 0; i < args.length; i++) {
4.
System.out.println("args[" + i + "] is <" + args[i] + ">");
5.
}
6.
}
7.
}
运行命令:java Java C VB //第一个java是命令,后面的是参数
运行结果:
args[0] is<Java>
args[1] is<C>
args[2] is<VB>
2.标准输入,输出数据流
java系统自带的标准数据流:java.lang.System:
[
1.
java.lang.System
2.
public final class System extends Object{
3.
static PrintStream err;//标准错误流(输出)
4.
static InputStream in;//标准输入(键盘输入流)
5.
static PrintStream out;//标准输出流(显示器输出流)
6.
}
注意:
(1)System类不能创建对象,只能直接使用它的三个静态成员。
(2)每当main方法被执行时,就自动生成上述三个对象。
1) 标准输出流 System.out
System.out向标准输出设备输出数据,其数据类型为PrintStream。方法:
Void print(参数)
Void println(参数)
1. import java.io.*;
2. public class StandardInputOutput {
3. public static void main(String args[]) {
4. int b;
5. try {
6. System.out.println("please Input:");
7. while ((b = System.in.read()) != -1) {
8. System.out.print((char) b);
9. }
10. } catch (IOException e) {
11. System.out.println(e.toString());
12. }
13. }
14. }
2)标准输入流 System.in
System.in读取标准输入设备数据(从标准输入获取数据,一般是键盘),其数据类型为InputStream。方法:
int read() //返回ASCII码。若,返回值=-1,说明没有读取到任何字节读取工作结束。
int read(byte[] b)//读入多个字节到缓冲区b中返回值是读入的字节数
例如:
(方法一)
1. import java.io.*;
2. public class StandardInputOutput {
3. public static void main(String args[]) {
4. int b;
5. try {
6. System.out.println("please Input:");
7. while ((b = System.in.read()) != -1) {
8. System.out.print((char) b);
9. }
10. } catch (IOException e) {
11. System.out.println(e.toString());
12. }
13. }
14. }
(方法二)
1. import java.io.BufferedReader;
2. import java.io.IOException;
3. import java.io.InputStreamReader;
4.
5. public class StandardInputOutput {
6. public static void main(String args[]) {
7. String s;
8. // 创建缓冲区阅读器从键盘逐行读入数据
9. InputStreamReader ir = new InputStreamReader(System.in);
10. BufferedReader in = new BufferedReader(ir);
11. System.out.println("Unix系统: ctrl-d 或 ctrl-c 退出"
12. + "\nWindows系统: ctrl-z 退出");
13. try {
14. // 读一行数据,并标准输出至显示器
15. s = in.readLine();
16. // readLine()方法运行时若发生I/O错误,将抛出IOException异常
17. while (s != null) {
18. System.out.println("Read: " + s);
19. s = in.readLine();
20. }
21. // 关闭缓冲阅读器
22. in.close();
23. } catch (IOException e) { // Catch any IO exceptions.
24. e.printStackTrace();
25. }
26. }
27. }
(方法三)
使用java.util的scanner类
Scanner scanner=new Scanner(System.in);
String string=scanner.next();
3)标准错误流
System.err输出标准错误,其数据类型为PrintStream,在屏幕上打印错误信息(红色字体)。
二.重定向
用system类的setout()和seterr()方法。
重定向out:
File file=new File("C:/Users/WWWYU/Desktop/test.txt");
PrintStream pStream=new PrintStream(new FileOutputStream(file,true));//打印到文件的末尾
System.setOut(pStream);
System.out.print("hello");
重定向err:
File file=new File("C:/Users/WWWYU/Desktop/test.txt");
PrintStream pStream=new PrintStream(new FileOutputStream(file,true));//打印到文件的末尾
System.setErr(pStream);
System.err.print("hello");
参考链接:
http://www.2cto.com/kf/201312/262036.html
一.标准io
Java程序可通过命令行参数与外界进行简短的信息交换,同时,也规定了与标准输入、输出设备,如键盘、显示器进行信息交换的方式。而通过文件可以与外界进行任意数据形式的信息交换。
1.命令行参数
[
1.
public class TestArgs {
2.
public static void main(String[] args) {
3.
for (int i = 0; i < args.length; i++) {
4.
System.out.println("args[" + i + "] is <" + args[i] + ">");
5.
}
6.
}
7.
}
运行命令:java Java C VB //第一个java是命令,后面的是参数
运行结果:
args[0] is<Java>
args[1] is<C>
args[2] is<VB>
2.标准输入,输出数据流
java系统自带的标准数据流:java.lang.System:
[
1.
java.lang.System
2.
public final class System extends Object{
3.
static PrintStream err;//标准错误流(输出)
4.
static InputStream in;//标准输入(键盘输入流)
5.
static PrintStream out;//标准输出流(显示器输出流)
6.
}
注意:
(1)System类不能创建对象,只能直接使用它的三个静态成员。
(2)每当main方法被执行时,就自动生成上述三个对象。
1) 标准输出流 System.out
System.out向标准输出设备输出数据,其数据类型为PrintStream。方法:
Void print(参数)
Void println(参数)
1. import java.io.*;
2. public class StandardInputOutput {
3. public static void main(String args[]) {
4. int b;
5. try {
6. System.out.println("please Input:");
7. while ((b = System.in.read()) != -1) {
8. System.out.print((char) b);
9. }
10. } catch (IOException e) {
11. System.out.println(e.toString());
12. }
13. }
14. }
2)标准输入流 System.in
System.in读取标准输入设备数据(从标准输入获取数据,一般是键盘),其数据类型为InputStream。方法:
int read() //返回ASCII码。若,返回值=-1,说明没有读取到任何字节读取工作结束。
int read(byte[] b)//读入多个字节到缓冲区b中返回值是读入的字节数
例如:
(方法一)
1. import java.io.*;
2. public class StandardInputOutput {
3. public static void main(String args[]) {
4. int b;
5. try {
6. System.out.println("please Input:");
7. while ((b = System.in.read()) != -1) {
8. System.out.print((char) b);
9. }
10. } catch (IOException e) {
11. System.out.println(e.toString());
12. }
13. }
14. }
(方法二)
1. import java.io.BufferedReader;
2. import java.io.IOException;
3. import java.io.InputStreamReader;
4.
5. public class StandardInputOutput {
6. public static void main(String args[]) {
7. String s;
8. // 创建缓冲区阅读器从键盘逐行读入数据
9. InputStreamReader ir = new InputStreamReader(System.in);
10. BufferedReader in = new BufferedReader(ir);
11. System.out.println("Unix系统: ctrl-d 或 ctrl-c 退出"
12. + "\nWindows系统: ctrl-z 退出");
13. try {
14. // 读一行数据,并标准输出至显示器
15. s = in.readLine();
16. // readLine()方法运行时若发生I/O错误,将抛出IOException异常
17. while (s != null) {
18. System.out.println("Read: " + s);
19. s = in.readLine();
20. }
21. // 关闭缓冲阅读器
22. in.close();
23. } catch (IOException e) { // Catch any IO exceptions.
24. e.printStackTrace();
25. }
26. }
27. }
(方法三)
使用java.util的scanner类
Scanner scanner=new Scanner(System.in);
String string=scanner.next();
3)标准错误流
System.err输出标准错误,其数据类型为PrintStream,在屏幕上打印错误信息(红色字体)。
二.重定向
用system类的setout()和seterr()方法。
重定向out:
File file=new File("C:/Users/WWWYU/Desktop/test.txt");
PrintStream pStream=new PrintStream(new FileOutputStream(file,true));//打印到文件的末尾
System.setOut(pStream);
System.out.print("hello");
重定向err:
File file=new File("C:/Users/WWWYU/Desktop/test.txt");
PrintStream pStream=new PrintStream(new FileOutputStream(file,true));//打印到文件的末尾
System.setErr(pStream);
System.err.print("hello");
相关文章推荐
- 彻底明白Java的IO系统
- 使用java.io.*操作文件的拆分与合并,Application一例!
- 彻底明白Java的IO系统---JAVA之精髓IO流
- 彻底明白javaIO (转)
- IO.java
- Java IO 综述
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流 ZHBK [原作]
- Java 的 IO 系统
- 读mingjava io系列文章有感
- 彻底明白Java的IO系统
- (收藏)彻底明白Java的IO系统(文摘)---JAVA之精髓IO流
- 彻底明白Java的IO系统
- java io重定向
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流 ZHBK [原作]
- 彻底明白JAVA的IO系统-1(认识File)
- 用Java的New IO开发网络协议
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流
- 彻底明白Java的IO系统
- Java IO学习基础之读写文本文件
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流