JAVA使用BufferedWriter和BufferedReader实现写入到读取


前言

BufferedWriter 和 BufferedReader 为带有默认缓冲的字符输出输入流,因为有缓冲区所以很效率比没有缓冲区的很高。


1.方法介绍

1.1.BufferedWriter 类

构造方法
bufferedWriter bf = new bufferedWriter(Writer out );

主要方法
void write(char ch);//写入单个字符。
void write(char []cbuf,int off,int len)//写入字符数据的某一部分。

void write(String s,int off,int len)//写入字符串的某一部分。

void newLine()//写入一个行分隔符
void flush();//刷新该流中的缓冲。将缓冲数据写到目的文件中去。

void close();//关闭此流,再关闭前会先刷新他。

1.2.BufferedReader类

构造方法
BufferedReader br = new BufferReader(Reader in);

主要方法
int read();//读取单个字符。

int read(char[] cbuf,int off,int len);//将字符读入到数组的某一部分。返回读取的字符数。达到尾部,返回-1。

String readLine(); //读取一个文本行。

void close(); //关闭该流。并释放与该流相关的所有资源。

2.代码实现

2.1.写入数据BufferedWriter

代码如下:

        String filename = "d:\\text.txt";
        BufferedWriter bufferwriter = null;
        bufferwriter = new BufferedWriter(new FileWriter(filename));
        bufferwriter.write("黄鹤楼送孟浩然之广陵");
        // 写入换行符
        bufferwriter.newLine();
        bufferwriter.write("【作者】李白 【朝代】唐");
        // 写入换行符
        bufferwriter.newLine();
        bufferwriter.write("故人西辞黄鹤楼,");
        // 写入换行符
        bufferwriter.newLine();
        bufferwriter.write("烟花三月下扬州。");
        // 写入换行符
        bufferwriter.newLine();
        bufferwriter.write("孤帆远影碧空尽,");
        // 写入换行符
        bufferwriter.newLine();
        bufferwriter.write("唯见长江天际流。");
        // 关闭流
        bufferwriter.close();
        System.out.println("文件写入成功");

2.2.读取数据BufferedReader

代码如下:

        //打开一个file
        File createFile = new File("d:\\text.txt");
        // new一个InputStreamReader←FileInputStream←file
        InputStreamReader streamReader = new InputStreamReader(new FileInputStream(createFile));
        //用BufferedReader(←InputStreamReader)的readLine()方法读取
        BufferedReader bufferReader = new BufferedReader(streamReader);
        String txtLine = null;
        while ((txtLine = bufferReader.readLine()) != null) {
            System.out.println(txtLine);
        }
        bufferReader.close();

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用BufferedWriterBufferedReader实现搜索一个单词,在该单词后写入另一个单词的Java代码: ```java import java.io.*; public class SearchAndWrite { public static void main(String[] args) { String searchWord = "apple"; String newWord = "orange"; String fileName = "input.txt"; String tempFile = "temp.txt"; try { File inputFile = new File(fileName); File tempOutputFile = new File(tempFile); BufferedReader reader = new BufferedReader(new FileReader(inputFile)); BufferedWriter writer = new BufferedWriter(new FileWriter(tempOutputFile)); String currentLine; boolean found = false; while ((currentLine = reader.readLine()) != null) { if (currentLine.contains(searchWord)) { found = true; currentLine = currentLine.replace(searchWord, searchWord + " " + newWord); } writer.write(currentLine + System.getProperty("line.separator")); } writer.close(); reader.close(); if (found) { inputFile.delete(); tempOutputFile.renameTo(inputFile); System.out.println("The word \"" + searchWord + "\" was found and replaced with \"" + searchWord + " " + newWord + "\"."); } else { tempOutputFile.delete(); System.out.println("The word \"" + searchWord + "\" was not found in the file."); } } catch (IOException e) { e.printStackTrace(); } } } ``` 在这个例子中,我们打开一个名为“input.txt”的文件,并搜索名为“apple”的单词。如果找到了这个单词,我们就在它后面写入一个名为“orange”的单词。我们使用BufferedReaderBufferedWriter读取写入文件。我们还创建了一个临时文件,用于写入新的文件内容。 首先,我们打开输入文件和临时输出文件。然后,我们使用BufferedReader逐行读取输入文件,检查是否包含指定的单词。如果找到了指定的单词,我们就在该行的单词后面添加一个空格和新单词,并将修改后的行写入临时文件。如果没有找到指定的单词,我们只是将该行写入临时文件中,而不做任何更改。 在写入文件后,我们关闭输入和输出流。如果我们找到了指定的单词并替换了它,我们就将原始输入文件删除,并将临时文件重命名为输入文件的名称。否则,我们只需删除临时文件。 最后,我们向控制台输出消息,指示我们是否找到并替换了指定的单词。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值