java IO

Java IO是一套用来提供读写的API。大部分程序都要处理一些输入,并由输入产生一些输出。java为此提供了java.io包。

java IO包主要涉及文件、网络数据流、内存缓冲等的输入输出。

在JavaIO中流是一个核心概念。流是一个抽象概念,可以看做数据传递时一组连续的数据流。

输入流:数据从数据源(文件、数据库、网络)流向程序的过程。输入流也可以理解为向内存输入。

输出流:数据从程序流向目的地(文件、数据库)的过程称为输出流。输出流可以理解为从内存输出。

一个程序需要用InputStream或者reader从数据源读取数据,通过OutputStream或者writer将数据写入目标中。

在java io中流既可以是字节流(以字节为单位进行读写)也可以是字符流(以字符单位进行读写)。

下面介绍一下常用的文件读写的使用。

文件的读写

可以根据读取文件是否二进制文件来选择使用FileInputStream(字节流)还是Reader(字符流)。读取文本数据优先选择字符流。

//字符流进行读取
Reader reader=new FileReader(new File("D://out.data"));
BufferedReader br=new BufferedReader(reader);
String data=null;
while ((data=br.readLine())!=null){
    System.out.println(data);
}
br.close();
        //写入
        Writer wr=new FileWriter(new File("D://out.data"));
        BufferedWriter bw=new BufferedWriter(wr);
        bw.write("窗前明月光");
        bw.newLine();
        bw.write("疑是地上霜");
        bw.close();
 //字节流读取
      InputStream is=new FileInputStream(new File("D://docker安装.txt"));
      byte data[]=new byte[1024];
      int len;
      StringBuilder sb=new StringBuilder();
      //is.read(byte [])将读取到的字节写入byte数组中,返回写入的长度
      while((len=is.read(data))!=-1){
          String s=new String(data,0,len);
          sb.append(s);
      }
        System.out.println(sb);
        //字节流输出   true为追加写,false为覆盖写
        OutputStream os=new FileOutputStream(new File("D://out.data"),true);
        String data="\n举头望明月";
        os.write(data.getBytes(Charset.defaultCharset()));
        os.flush();
        os.close();

 

posted @ 2020-08-31 14:37  她曾是他的梦  阅读(111)  评论(0编辑  收藏  举报