IO流知识总结2

本文详细介绍了Java中如何使用字符流进行文件读写,包括FileReader、BufferedReader的使用,以及FileWriter、BufferedWriter提高写文件效率的方法。通过实例展示了读取和写入文本文件的过程,强调了缓冲区在提高读写效率上的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用字符流读写文件

读文件 使用 Reader抽象类实现

使用reader读取文本文件案例:

 public static void main(String[] args) {
        File f1=new File("java1.txt");
        Reader r1=null;
        StringBuffer sb=null;
        try {
             r1=new FileReader("java1.txt");
            int length=0;
             char[] a=new char[1024];
             while ((length=r1.read(a))!=-1){
                 System.out.println(new String(a,0,length));
             }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                r1.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
}

使用Bufferedreader类来提高读取文本文件的效率        

使用FileReader类与BufferedReader
BufferedReader类是Reader类的子类
BufferedReader类带有缓冲区 ,按行读取内容的readLine()方法,BufferedReader类特有的方法
public static void main(String[] args) {
        FileReader fileReader=null;
        BufferedReader reader=null;
        try {
           fileReader=new FileReader("caijian2.txt");
           reader=new BufferedReader(fileReader);
           String s="";
           while ((s=reader.readLine())!=null){
               System.out.println(s);
           }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                fileReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
通过字符流的方式读取文件,并使用缓冲区,提高读文本文件的效率.
Reader类常用方法 :int read( )       
  int read(byte[] c)
  read(char[] c,int off,int len)
  void close( )
 子类BufferedReader常用的构造方法
 BufferedReader(Reader in)
 子类BufferedReader特有的方法
 readLine()

写文件 使用 Writer抽象类实现

案例:

 public static void main(String[] args) {
        File file=new File("java1.txt");
        Writer w1=null;
        try {
             w1=new FileWriter(file,true);
             w1.write(97);
             w1.write("zhang");
             w1.write("hh");
             w1.write(new char[]{'7','8','t'});
             w1.write(new char[]{'7','8','t'},0,1);
             w1.write("冲冲冲");
            w1.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                w1.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
使用FileWriter类与BufferedWriter
提高字符流写文本文件的效率:使用BufferedWriter类是Writer类的子类
BufferedWriter类带有缓冲区
代码实例:
public static void main(String[] args) {
        FileWriter fileWriter=null;
        BufferedWriter writer=null;
        try {
            fileWriter=new FileWriter("caijian2.txt");
            writer=new BufferedWriter(fileWriter);
            writer.write(97);
            writer.write("战神");
            writer.newLine();
            writer.append('q').append('f');
            writer.write("哈哈哈");
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                fileWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
Writer类常用方法
 write(String str)
 write(String str,int off,int len)
 void close()
 void flush()
子类BufferedWriter常用的构造方法
 BufferedReader(Writer out)
小总结:
File 类用于访问文件或目录的属性
 程序和数据源之间通过流联系
 输入流和输出流
 字节流和字符流
 节点流和包装流
 FileInputStream和FileOutputStream以字节流的方式读写文本文件。
 BufferedReader和BufferedWriter以字符流的方式读写文本文件,而且效率更高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值