使用java在(.text)文件中插入特定行号的文本

时间:2014-01-14 10:17:36

标签: java

 public void urlWriter(int y) throws IOException
            {
           File file = new File("C:\\DRIVE\\datas.txt");
           FileWriter fw = new FileWriter(file);
           BufferedReader dummyReader = new BufferedReader(new FileReader(file));

           BufferedWriter latestSource = new BufferedWriter(fw);


          //dummy string to read line by line
          String dooms =null;


         //loop for reading line by line
            for(i=0;i<y;i++) 
            {   
            while ((dooms=dummyReader.readLine())!=null)
            {


               //y line
                latestSource.write(CommonData.entered_direct);
                latestSource.newLine();
                //y+1 line
                latestSource.write(CommonData.entered_cellar);
                latestSource.newLine();
                //y+2 line
                latestSource.write(CommonData.entered_tele);
                latestSource.close();

            }
            }

试图逐行阅读,然后在特定位置写字。但是存在同样的问题..有人可以帮助我...... ????

场景:如果y值传递为'4',则文本文件中的第4行,第5行,第6行应替换为新数据。如果某人帮助我,我会非常感激。提前致谢!!

面临的问题:所有数据都写在文本文件的底部,而不是坚持指定的行号

4 个答案:

答案 0 :(得分:1)

您想要的只能通过逐行读取文件然后

来实现
  • 如果新文本是要替换的行之一,则写入新文本。
  • 否则,请写下原始行。

然后您将拥有原始文件和新文件。您可以相应地重命名它们,这样您也可以备份上次更改。

粗略轮廓:

 open input file (i.e. BufferedReader)
 open new outfile file (i.e. some Writer)
 line = 0
 data = read line from input
 while (there is data) 
    line = line + 1
    if (line >= y && line <= y+2)
        write replaced data
    else
        write data
    data = read line from input
close output file
close input file

答案 1 :(得分:0)

有一个名为RandomAccessFile的类,这就是你要找的东西。

答案 2 :(得分:0)

RandomAccessFile seek()的帮助下,您可以实现这一目标。

  

Seek设置文件指针偏移量,从此开始测量   文件,发生下一次读或写。可以设置偏移   超出文件的末尾。将偏移量设置为超出结束范围   文件不会更改文件长度。文件长度仅会更改   通过写入偏移量已经设置超出文件末尾。

RandomAccessFile ra = new RandomAccessFile("abc.txt","rw" );// (file name, mode of file)
          ra.seek(15);// set the poss to overwrite
          ra.writeUTF("garbage");

答案 3 :(得分:0)

此问题已被提出,并且有一个答案已被用户接受。请参阅以下链接how to write content in a Specific position in a File