栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

IO(5)BufferedReader与BufferedWriter

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IO(5)BufferedReader与BufferedWriter

废话少说,先放代码

package com.NicMark.Writerr;

import java.io.BufferedWriter;
import java.io.FileWriter;

public class BufferedWriter_ {
    public static void main(String[] args) throws Exception{
        String filePath ="C:\Users\DELL\Desktop\IO\bufferedWriter.txt";
        //创建BufferedWriter
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath));
        bufferedWriter.write("hello,NicMark");
        //插入一个换行
        bufferedWriter.newline();
        bufferedWriter.close();
    }
}
import java.io.BufferedReader;
import java.io.FileReader;

public class BufferedReader_ {
    public static void main(String[] args) throws Exception {

        String filePath = "C:\Users\DELL\Desktop\IO\BUFFEREDREADER.txt";
        BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
        //bufferedReader在读取的时候底层是在使用FileReader
        String line;//按行读取,效率高
        line = bufferedReader.readLine();//返回字符串
        //当返回null时,表示读取完毕
        while ((line = bufferedReader.readLine())!=null){
            System.out.println(line);
        }
        //关闭流 只需要关闭bufferedreader
        bufferedReader.close();
    }
}

BufferedReader也好 BufferedWriter也好,其本质是包装流,意在包装输出流或输入流,使其底层的输入流输出流更加强大,拓展功能更加多,效率更高。

我们先看BufferedReader
public class BufferedReader_ {
    public static void main(String[] args) throws Exception {

        String filePath = "C:\Users\DELL\Desktop\IO\BUFFEREDREADER.txt";
        BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
        //bufferedReader在读取的时候底层是在使用FileReader
        String line;//按行读取,效率高
        line = bufferedReader.readLine();//返回字符串
        //当返回null时,表示读取完毕
        while ((line = bufferedReader.readLine())!=null){
            System.out.println(line);
        }
        //关闭流 只需要关闭bufferedreader
        bufferedReader.close();
    }
}

在new对象的时候,我们需要将文件的类型对应的流new在Bufffered—里面

String filePath = "C:\Users\DELL\Desktop\IO\BUFFEREDREADER.txt";
        BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));

在读取文件的内容时,我们可以使用其中readLine()方法

String line;//按行读取,效率高
        line = bufferedReader.readLine();

而readLine()的返回值是字符串,当其返回值是null的时候,报名文件中已无任何文本内容,这作为我们判断是否停止循环的条件

while ((line = bufferedReader.readLine())!=null){
            System.out.println(line);
        }

最终,我们关闭Buffered流。我们关闭它的表层流,他内部的底层流也会自动关闭。

bufferedReader.close();
BufferedWriter
public class BufferedWriter_ {
    public static void main(String[] args) throws Exception{
        String filePath ="C:\Users\DELL\Desktop\IO\bufferedWriter.txt";
        //创建BufferedWriter
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath));
        bufferedWriter.write("hello,NicMark");
        //插入一个换行
        bufferedWriter.newline();
        bufferedWriter.close();
    }
}

与BufferedReader一样,在new的时候要将对应文件所相关的流new在Buffered里面

String filePath ="C:\Users\DELL\Desktop\IO\bufferedWriter.txt";
        //创建BufferedWriter
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath));

我们可以调用其中的wirte()方法,在括号内写入相应的字符串

bufferedWriter.write("hello,NicMark");
        //插入一个换行
        bufferedWriter.newline();
        bufferedWriter.close();

再通过newline()插入一个换行符,使其换行,否则,所有的内容将会在文件里以一行的形式展示。

以下,是利用Buffered来拷贝文本文件的代码
package com.NicMark.Writerr;

import java.io.*;

public class BufferedCopy_ {
    public static void main(String[] args) {
        String srcFile = "C:\Users\DELL\Desktop\IO\BUFFEREDREADER.txt";
        String desFile = "C:\Users\DELL\Desktop\IO\file\None.txt";
        BufferedReader br = null;
        BufferedWriter bw = null;
        String line;
        try {
            br = new BufferedReader(new FileReader(srcFile));
            bw = new BufferedWriter(new FileWriter(desFile));
            //读取
            while ((line = br.readLine())!=null){
                //没读取一行,就录入一次
                bw.write(line);
                //换行!!!!!
                //插入一个换行
                bw.newline();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
          if(br!=null){
              try {
                  br.close();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
          if (bw!=null);
            try {
                bw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
谨记

如若想拷贝二进制文件,如(音频,视频,照片等)
我们需要用到

new BufferedInputStream(new FileInputStream())
new BufferedOutputStream(new FileOutputStream())

相应的while循环里将不再是readLine()而是read(),返回值变为int型

这节内容到此结束

江湖不远,我们有缘再见

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/331612.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号