一:首先介绍System类对JAVA的IO操作的支持:
System.out,System.err,Syste.in。其中的out,err,in都是System类的常量,他们是PrintStream类的实例对象。
1.使用System.out输出的时候是将输出的位置定义在了显示器中。而FileOutputStream是将输出的位置定义在文件中。
OutputStream out=System.out; //此时的输出流是向屏幕上进行输出
try {
out.write("Hello World!".getBytes());
out.close();
} catch (IOException e) {
e.printStackTrace();
}
2.System.err表示的是标准的错误输出,当程序中出现了错误的时候一般用于打印错误的输出信息。
3.System.in是键盘的输入流,其本质上是InputStream流的对象。利用这个对象可以从键盘上读取信息。
4.文件的重定向:
System.setOut(new PrintStream(new FileOutputStream(new File("F:"+File.separator+"test.txt"))));//文件的重定向
System.out.println("文件重定向之后,输出的内容不再显示在屏幕上而是保存在文件中");
System.out.println("再来一个输出");
二:BufferedReader,一般用于接收任意长度的数据并且避免乱码的产生的问题。BufferedReader是Reader的子类,它是从缓冲区中读取内容,所有将要输入程序中的数据都放在缓冲区之中!
//从键盘中获取数据的最佳方式:
BufferedReader buf=null; //声明对象
buf=new BufferedReader(new InputStreamReader(System.in));//将System.in字节流包装成字符流传递给BufferedReader做实例化
String str=null; //接收输入的内容
System.out.println("请输入内容:");
try {
str=buf.readLine(); //读取一行的数据
buf.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("输入的内容为:"+str);
三:专门完成输入功能的Scanner类,此类是JDK之后增加的新功能:
Scanner scanner=new Scanner(System.in);//表示从键盘中输入数据,System.in表示输入的字节流(InputStream类)
System.out.println("请输入数据:");
scanner.useDelimiter("\n"); //这里指定以换行作为分隔符,空格应该忽略
String next = scanner.next();//接受数据,但是会以空格作为分隔符,所以需要分隔符
System.out.println("输入的数据为:"+next);