java txt的指定行改写

问题描述

java txt的指定行改写

用JAVA对txt中指定行数的数据进行改写并且保存在原文件中
比如:
1234
1122
1232141
修改第三行
1234
1122
ashdh

解决方案

文本文件是没办法直接替换行的,因为文件是连续存储的,每行的长度不同。
只能是改写完这行,再把它后面所有的行重写一次。当然也可以直接在内存中替换了全部再写一次,这样实现起来最简单。

解决方案二:

可以使用nio的Files API

List<String> lines = Files.readAllLines(Paths.get("文件名"));
List<String> replaced = new ArrayList<>();
int lineNo = 1;

for (String line : lines) {
    if (lineNo % 3 == 0) {
               replaced.add("替换成的行");
        } else {
            replaced.add(line);
        }
        lineNo++;
}
Files.write(Paths.get("文件名"), replaced);

解决方案三:

 public static void replaceTxtByLineNo(String path,int lineNo,String newStr) {
        String temp = "";
        try {
            File file = new File(path);
            FileInputStream fis = new FileInputStream(file);
            InputStreamReader isr = new InputStreamReader(fis);
            BufferedReader br = new BufferedReader(isr);
            StringBuffer buf = new StringBuffer();

            // 保存该行前面的内容
            for (int j = 1; (temp = br.readLine()) != null; j++) {
                if(j==lineNo){
                    buf = buf.append(newStr);
                }else{
                    buf = buf.append(temp);
                }
                buf = buf.append(System.getProperty("line.separator"));
            }

            br.close();
            FileOutputStream fos = new FileOutputStream(file);
            PrintWriter pw = new PrintWriter(fos);
            pw.write(buf.toString().toCharArray());
            pw.flush();
            pw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] s) throws IOException {
        replaceTxtByLineNo("D:/test.txt",3,"ashdh222");
    }

解决方案四:

学习了,高手在上面。

解决方案五:

C#读取txt的指定行
Java按行读txt

时间: 2024-10-04 11:38:40

java txt的指定行改写的相关文章

求助!替换txt文件指定行内容出现问题。

问题描述 PublicSub替换指定行内容(路径AsString,内容AsString,行AsString)DimistrAsString=My.Computer.FileSystem.ReadAllText(路径)Dima()AsString=istr.Split(vbCrLf)DimbAsIntegera(行)=内容My.Computer.FileSystem.WriteAllText(路径,Join(a,vbCrLf),False)EndSub以上是我的程序,可以正常完成替换工作,但是在x

python-问下Python 中删除TXT文件的指定行

问题描述 问下Python 中删除TXT文件的指定行 问下Python 中读取TXT文件的每一行,匹配有例如:rating的行就删除该行或者将rating替换为avg也可以,怎么写啊? (该文本中的每行都有空格,开头也可能有空格),谢谢啦,嘿嘿 解决方案 删除txt文件内容的指定行获取指定目录下所有的.txt文件python 读写txt文件 json文件 解决方案二: line=f.readlines() del line[1] //你想删除的行, 如果想匹配就迭代吧

python-Python 删除TXT文件的指定行

问题描述 Python 删除TXT文件的指定行 问下Python 中读取TXT文件的每一行,匹配有例如:rating的行就删除该行或者将rating替换为avg也可以,怎么写啊? (该文本中的每行都有空格,开头也可能有空格),谢谢啦,嘿嘿 解决方案 删除txt文件内容的指定行获取指定目录下所有的.txt文件python 读写txt文件 json文件 解决方案二: 读取文件到内存,然后修改以后重新写回文件 解决方案三: with open('m.txt', 'r') as f1: txt = f1

c#中如何把txt文件中的指定一行赋值给一个变量,txt中每行只有一个数字

问题描述 c#中如何把txt文件中的指定一行赋值给一个变量,txt中每行只有一个数字比如有X,YY<100,X=txt文件中的第一行Y>100&Y<200,X=txt文件中的第二行该如何用代码表达? 解决方案 解决方案二:其他的我相信你的智商是可以搞定的,关键是读取文件中每行的数字到数组中,这个我写一下:int[]arr=System.IO.File.ReadAllLines(@"e:/Test.txt",System.Text.Encoding.Defaul

js动态生成指定行数的表格

下面用js实现可以生成用户所需行数的表格. 1.首先在body中填入下列代码,获取用户填入的行数值 1 <table> 2 <tr> 3 <td>动态生成表格</td> 4 <td><input id="Cold" type="text" class="input" size="10" name="Num"/>行</td>

php读取文本文件替换指定行

  代码如下   $file_path = '123.txt'; $content = file_get_contents($file_path); //按换行符把全部内容分隔成数组 $con_array = explode("n", $content); //替换掉指定行       $con_array[12]="123"; //组合回字符串 $con = implode("n", $con_array);       //写回文档 file

android-当 string 中包含“-”时,不能删除 sqlite 中的指定行

问题描述 当 string 中包含"-"时,不能删除 sqlite 中的指定行 在下面的 listview 中显示名字和号码,这些数据都是从数据库中获取.当我删除比如数字区域是 "123456"时,能正常运行.但是问题是不能删除一些 list items ,比如它的数字区域是 "888-888-00". 我使用的代码 : DatabaseHelpher.java private static final String KEY_NAME = &qu

c++ 对txt文件指定的内容的修改

问题描述 c++ 对txt文件指定的内容的修改 要用c++程序对文件指定内容进行修改,删除指定数据,要用到文件指针吗,求大神指导一下,基本的思路,谢谢 解决方案 在TXT文件中查找指定字符串并显示指定字符串所在行的内容把内容写入TXT文件java往txt文件中写内容 解决方案二: txt文件不能删除中间的内容,除非修改的字符数和原先的一样,否则也不能修改.因为txt文件是线性的. 要想修改.删除,需要重新写回修改后的所有文本. 解决方案三: 文件好像不支持删除操作 解决方案四: 当然要用到..

脚本-关于使用sed删除指定行的问题

问题描述 关于使用sed删除指定行的问题 业务需求,要写一个脚本定期收集目录下的文件 涉及到一个去重的功能 cat 1.txt /date/file1/x /date/file1/y /date/file1/z j=/date/file1/x sed "/$j/d" 1.txt sed "/'$j'/d" 1.txt 如上 我想删除1.txt中 包含 /date/file/x的 行 ,使用上面的sed 命令都无法实现. 不知哪里不对.求指导! 解决方案 linux下