• java IO流 之 字符流


    字符流 :读的也是二进制文件,他会帮我们解码成我们看的懂的字符。
    字符流 = 字节流  + 解码

    (一)字符输入流:Reader : 它是字符输入流的根类 ,是抽象类

      FileReader :文件字符输入流 ,读取字符串。
         用法:
            1.找到目标文件
            2.建立数据的通道
            3.建立一个缓冲区
            4.读取数据
            5.关闭资源。

    (二)字符流输出流: Writer : 字符输出流的根类 ,抽象的类
              FileWiter :文件数据的输出字符流
              使用注意点:
             1.FileReader内部维护了一个1024个字符的数组,所以在写入数据的时候,它是现将数据写入到内部的字符数组中。

          如果需要将数据写入到硬盘中,需要用到flush()或者关闭或者字符数组数据存满了。
             2.如果我需要向文件中追加数据,需要使用new FileWriter(File , boolean)构造方法 ,第二参数true
             3.如果指定的文件不存在,也会自己创建一个。

    字符输出流简单案例

     1 import java.io.File;
     2 import java.io.FileWriter;
     3 import java.io.IOException;
     4 
     5 public class fileWriter {
     6 
     7     /**
     8      * @param args
     9      * @throws IOException 
    10      */
    11     public static void main(String[] args) throws IOException {
    12         // TODO Auto-generated method stub
    13         testFileWriter();
    14 
    15     }
    16     
    17     public static void testFileWriter() throws IOException{
    18         
    19         //1.找目标文件
    20         File file = new File("D:\a.txt");
    21         //2.建立通道
    22         FileWriter fwt = new FileWriter(file,true); //在文件后面继续追加数据
    23         //3.写入数据(直接写入字符)
    24         fwt.write("继续讲课");
    25         //4.关闭数据
    26         fwt.close();
    27     }
    28 }

    字符输入流简单案例

     1 import java.io.File;
     2 import java.io.FileReader;
     3 import java.io.IOException;
     4 
     5 public class fileReader {
     6 
     7     public static void main(String[] args) throws IOException {
     8 
     9         //testFileReader();
    10         testFileReader2();
    11     }
    12     //(1)输入字符流的使用  这种方式效率太低。
    13     public static void testFileReader() throws IOException{
    14         
    15         //1.找目标文件
    16         File file = new File("D:\a.txt");
    17 
    18         //2.建立通道
    19         FileReader frd = new FileReader(file);
    20 
    21         //3.读取数据
    22         int content = 0; //读取单个字符。效率低
    23         while ((content = frd.read()) != -1) {
    24             System.out.print((char)content);    
    25         }
    26         
    27         //4.关闭流
    28         frd.close();
    29     }
    30     
    31     //(2)
    32     public static void testFileReader2() throws IOException{
    33         
    34         //1.找目标文件
    35         File file = new File("D:\a.txt");
    36 
    37         //2.建立通道
    38         FileReader frd = new FileReader(file);
    39 
    40         //3.建立一个缓冲区 ,字符数组
    41         char[] c = new char[1024];
    42         int length = 0;
    43 
    44         //4.读取数据
    45         while ((length = frd.read(c))!= -1) {
    46             //字符串输出
    47             System.out.println(new String(c,0,length));
    48         }
    49         //5.关闭资源
    50         frd.close();
    51     }
    52 }
  • 相关阅读:
    累加和校验算法(CheckSum算法)
    云锵投资 2021 年 09 月简报
    云锵投资 2021 年 08 月简报
    断言与忽略断言
    出现 undefined reference to `cv::String::deallocate()'的解决方法
    about of string
    esp32: A stack overflow in task spam_task has been detected.
    IDEA部署Tomcat报错:No artifacts marked for deployment
    在safari浏览器上使用php导出文件失败
    laravel中使用vue热加载时 Cannot read property 'call' of undefined BUG解决方案
  • 原文地址:https://www.cnblogs.com/bigerf/p/6144384.html
Copyright © 2020-2023  润新知