zoukankan      html  css  js  c++  java
  • javaIO--字符流

    java提供字符流对自否刘式文件进行数据读写操作。字符输入流类是Reader及其子类,输出流是Writer及其子类。

    另外,上一篇javaIO写的是字节流,字节流方式也可以对以字符为基本类型的流式文件读写。

    1 采用文件字节流,将字节缓冲区数组中的字节转换成字符

    2 采用数据字节流,readChar()方法读取一个字符,writerChar(int c)方法写入一个字符,writerChars(String s)方法写入一个字符串。

    ps:DataInputStream类中的读取一行字符串的readLine()方法已过时,被BufferReader类中的readLine()取代。

    Reader类的子类:InputStreamReader(字节输入流转换成字符输入流   <--Filereader(文件字符输入流))、FilerReader(过滤器字符输入流)、PipedReader(管道字符输入流)、BufferReader(缓冲字符输入流)。

    Writer类的子类:OutputStreamReader(字节输入流转换成字符输入流   <--FileWriter(文件字符输入流))、FilerWriter(过滤器字符输入流)、PipedWriter(管道字符输入流)、BufferWriter(缓冲字符输入流)、PrintWriter(格式化字符输出流)。

    下面是一个对文件进行字符型IO的实例,将Fibonacci序列值写入文本

     1 public class IOtestChar {
     2     public static void main(String[] args) throws IOException {
     3         TextFile afile = new TextFile("fibText.txt");
     4         afile.writeToText();
     5         afile.readFromText();
     6     }
     7     
     8     //文本文件的读写操作,以字符串为单位:将fibonacci序列值写入文本文件
     9     static class TextFile{
    10         private String filename;
    11         public TextFile(String filename){
    12             this.filename = filename;
    13         }
    14         
    15         public void writeToText() throws IOException{
    16             FileWriter fout = new FileWriter(this.filename);
    17             short i = 0, j = 1;
    18             do{
    19                 fout.write(i + " " + j + " ");
    20                 i = (short)(i+j);
    21                 j = (short)(i+j);
    22             }while(i > 0);
    23             fout.close();
    24         }
    25         
    26         public void readFromText() throws IOException{
    27             FileReader fin = new FileReader(this.filename);
    28             BufferedReader bin = new BufferedReader(fin);
    29             System.out.println(this.filename + ": ");
    30             String aline = "";
    31             while((aline = bin.readLine()) != null){
    32                 System.out.println(aline);
    33             }
    34             bin.close();
    35             fin.close();
    36         }
    37     }
    38 }
  • 相关阅读:
    CF1137FMatches Are Not a Child‘s Play【LCT】
    P4491[HAOI2018]染色【多项式,二项式反演】
    P3170[CQOI2015]标识设计【插头dp】
    log4j 使用教程说明
    log4j中Logger.getLogger()加载一个类提示错误
    编程基础 0x00008 的0x代表什么?
    编程基础 快速的进行 2进制,10进制,16进制 的 相互转换
    Java 基础 equals,hashcode和==的区别
    位运算 左移右移运算符 >>, <<, >>>
    Java 虚拟机 2.2 运行时数据区 Runtime Data Area
  • 原文地址:https://www.cnblogs.com/K-artorias/p/7367373.html
Copyright © 2011-2022 走看看