javaIO流中对文件某一行内容进行修改或删除

一 创建文件对象

  private static File file = new File("goods.txt");

这里使用private的原因是这里位于我自己写的类中,是为了保护它不会被外界改变。

这样,我们就创建好了一个文件对象file。

二 对文件进行读取以及修改

目录

一 创建文件对象

二 对文件进行读取以及修改



       try(FileReader fr=new FileReader(file);
           BufferedReader br = new BufferedReader(fr);
           FileWriter fw=new FileWriter(file,true);
           BufferedWriter sbr=new BufferedWriter(fw);) {
           String line;
           while((line=br.readLine())!=null){
               if(_count==count){
                   line="";
                   sbr.append(line);
               }
               else sbr.append(line+'\n');
               _count++;
           }
           try( FileWriter fw1 = new FileWriter(file);){

           }catch (IOException e){
               e.printStackTrace();
           }
       }catch (IOException e){
       e.printStackTrace();
    }

这块代码位于一个方法内部,其中有些量是传进来的参数。

这里我遇到了一些问题。

在使用完BufferedWriter的追加之后,没有将原文件清空,导致自己对文件修改之后文件中会同时出现修改前和修改后的内容。

我这里修改的原理其实很简单。

就是单纯将文件中的内容一行一行读出来,然后存储到缓冲区中去。也就是追加append进去。

在读取的过程中可以对读取出的内容进行判断,如果是自己要修改或删除的内容便修改之后再追加到缓冲区内。修改和删除其实是没什么差别的,修改就是用实体内容替代原有内容,而修改则是用空字符代替进去。

记住,空字符不是空格字符,而是双引号里什么也不加!就是  ""   这样。

还有追加时记得在每一行后添加换行符,这样才能是修改后的内容有多行,否则就连在一起了哦。

清除原文件中的内容有很多种,我这里就直接用FileWrite了。

FileWriter fw=new FileWriter(file);

在FileWrite里面的参数里面少传个true就行了,当然也可以传false。这样他就会直接替换整个文件内容,而不是追加新的内容。

我新写了一篇更详细的IO流博客大家可以去看看

IO流之如何对文件进行读出,写入,修改和删除详解版(新)_混子喜羊羊的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值