zoukankan      html  css  js  c++  java
  • java标准输入输出流

    java标准输入输出流

    System 类   public final class System extends Object

    包含一些有用的类字段和方法。它不能被实例化。

    System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。

    static PrintStream err “标准”错误输出流。
    static InputStream in  “标准”输入流。
    static PrintStream out “标准”输出流。

    public static final InputStream in:字节输入流,用来读取键盘录入的数据 

      例:InputStream is=System.in;

        Scanner sc=new Scanner(System.in);

    public static final PrintStream out:字节输出流,将数据输出到命令行

      例:System.out.print();

    1、读取磁盘录入的数据,并写到根目录下a.txt文件中

     1 import java.io.FileWriter;
     2 import java.io.IOException;
     3 import java.io.InputStream;
     4 import java.io.InputStreamReader;
     5 import java.io.Reader;
     6 
     7 /**
     8  * 转换流:把字节输入流转换成字符输入流 InputStreamReader
     9  *                     InputStreamReader(InputStream in)
    10  * @author Administrator
    11  *
    12  */
    13 public class InputStreamWriterDemo {
    14     public static void main(String[] args) throws IOException {
    15         //创建输入流对象
    16         InputStream is=System.in;
    17         
    18         /*
    19         //创建输出流对象
    20         FileWriter fw=new FileWriter("a.txt");
    21         //读写
    22         byte[] bys=new byte[1024];
    23         int len=0;
    24         while((len=is.read(bys))!=-1) {
    25             fw.write(new String(bys, 0, len));
    26         }
    27          */
    28         Reader r=new InputStreamReader(is);
    29         FileWriter fw=new FileWriter("a.txt");
    30         char[] chs=new char[1024];
    31         int len=0;
    32         while((len=r.read(chs))!=-1) {
    33             fw.write(chs,0,len);
    34             fw.flush();
    35         }
    36         
    37         //释放资源
    38         fw.close();
    39         is.close();
    40     }
    41 }

    2、将文件数据打印到命令行

     3 import java.io.BufferedReader;
     4 import java.io.FileReader;
     5 import java.io.IOException;
     6 import java.io.OutputStream;
     7 
     8 //需求:读取项目根目录下SystemInOutDemo.java,并输出到命令行
     9 public class SystemInOutDemo {
    10     public static void main(String[] args) throws IOException {
    11         //创建输入输出流对象
    12         BufferedReader br=new BufferedReader(new FileReader("SystemInOutDemo.java"));
    13         OutputStream os=System.out;
    14         
    15         String line;//用于存储读取到的数据
    16         while((line=br.readLine())!=null) {
    17             os.write(line.getBytes());
    18             os.write("
    ".getBytes());
    19         }
    20         //释放资源
    21         os.close();
    22         br.close();
    23         
    24     }
    25 }

    由于标准输出流是一个字节输出流,所以只能输出字节或者字节数组,但是我们读到的数据则是字符串,如果想进行输出,还需要转换成字节数组,非常麻烦。我们要想通过标准输出流输出字符串,把标准输出流转换成一种字符输出流即可。可以使用转换流OutputStreamWriter。

     1 import java.io.BufferedReader;
     2 import java.io.FileReader;
     3 import java.io.IOException;
     4 import java.io.OutputStreamWriter;
     5 import java.io.Writer;
     6 
     7 //需求:读取项目根目录下SystemInOutDemo.java,并输出到命令行
     8 public class SystemInOutDemo {
     9     public static void main(String[] args) throws IOException {
    10         //创建输入输出流对象
    11         BufferedReader br=new BufferedReader(new FileReader("SystemInOutDemo.java"));
    12         Writer w=new OutputStreamWriter(System.out);//多态,父类引用指向子类对象
    13         //进行数据读写
    14         String line;
    15         while((line=br.readLine())!=null) {
    16             w.write(line);
    17             w.write("
    ");
    18         }
    19         //释放资源
    20         w.close();
    21         br.close();
    22     }
    23 }

    还可以结合高效缓冲流使用:

     1 import java.io.BufferedReader;
     2 import java.io.BufferedWriter;
     3 import java.io.FileReader;
     4 import java.io.IOException;
     5 import java.io.OutputStreamWriter;
     6 
     7 //需求:读取项目根目录下SystemInOutDemo.java,并输出到命令行
     8 public class SystemInOutDemo {
     9     public static void main(String[] args) throws IOException {
    10         //创建输入输出流对象
    11         BufferedReader br=new BufferedReader(new FileReader("SystemInOutDemo.java"));
    12         BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
    13         //进行数据读写
    14         String line;
    15         while((line=br.readLine())!=null) {
    16             bw.write(line);
    17             bw.newLine();
    18         }
    19         //释放资源
    20         bw.close();
    21         br.close();
    22     }
    23 }
  • 相关阅读:
    原子变量AtomicInteger
    8.2.2.2 Speed of UPDATE Statements 加速UPDATE语句:
    8.2.2 Optimizing DML Statements 优化DML 语句:
    CSS3中-moz、-ms、-webkit和-o分别代表什么意思
    8.2.1.19 Optimizing LIMIT Queries 优化LIMIT 查询:
    java.lang.IllegalArgumentException: Negative time
    8.2.1.17 DISTINCT Optimization
    Python基本语法_函数_参数的多类型传值
    Python基本语法_函数_参数的多类型传值
    8.2.1.16 GROUP BY Optimization
  • 原文地址:https://www.cnblogs.com/hopeyes/p/9733655.html
Copyright © 2011-2022 走看看