Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java在(.txt)文件中的特定行号处插入文本 public void urlWriter(int y)引发IOException { File File=新文件(“C:\\DRIVE\\datas.txt”); FileWriter fw=新的FileWriter(文件); BufferedReader dummyReader=新BufferedReader(新文件读取器(文件)); BufferedWriter latestSource=新的BufferedWriter(fw); //要逐行读取的伪字符串 字符串dooms=null; //逐行阅读的循环 对于(i=0;i_Java - Fatal编程技术网

使用java在(.txt)文件中的特定行号处插入文本 public void urlWriter(int y)引发IOException { File File=新文件(“C:\\DRIVE\\datas.txt”); FileWriter fw=新的FileWriter(文件); BufferedReader dummyReader=新BufferedReader(新文件读取器(文件)); BufferedWriter latestSource=新的BufferedWriter(fw); //要逐行读取的伪字符串 字符串dooms=null; //逐行阅读的循环 对于(i=0;i

使用java在(.txt)文件中的特定行号处插入文本 public void urlWriter(int y)引发IOException { File File=新文件(“C:\\DRIVE\\datas.txt”); FileWriter fw=新的FileWriter(文件); BufferedReader dummyReader=新BufferedReader(新文件读取器(文件)); BufferedWriter latestSource=新的BufferedWriter(fw); //要逐行读取的伪字符串 字符串dooms=null; //逐行阅读的循环 对于(i=0;i,java,Java,有一个名为RandomAccessFile的类,这就是您要寻找的。借助于RandomAccessFile您可以实现这一点 Seek设置文件指针偏移量,该偏移量是从本步骤开始测量的 文件,在该文件上进行下一次读取或写入。可以设置偏移量 超出文件结尾。设置超出文件结尾的偏移量 文件不会更改文件长度。文件长度只会更改 通过在偏移量设置超出文件末尾后写入 您可能只需要逐行读取文件,然后 如果是要替换的行之一,请编写新文本 否则,写下原始行 然后,您将拥有原始文件和新文件。您可以相应地重命名它们,这样

有一个名为RandomAccessFile的类,这就是您要寻找的。

借助于
RandomAccessFile
您可以实现这一点

Seek设置文件指针偏移量,该偏移量是从本步骤开始测量的 文件,在该文件上进行下一次读取或写入。可以设置偏移量 超出文件结尾。设置超出文件结尾的偏移量 文件不会更改文件长度。文件长度只会更改 通过在偏移量设置超出文件末尾后写入


您可能只需要逐行读取文件,然后

  • 如果是要替换的行之一,请编写新文本
  • 否则,写下原始行
然后,您将拥有原始文件和新文件。您可以相应地重命名它们,这样您还可以备份上次更改

粗略轮廓:

RandomAccessFile ra = new RandomAccessFile("abc.txt","rw" );// (file name, mode of file)
          ra.seek(15);// set the poss to overwrite
          ra.writeUTF("garbage");
打开输入文件(即BufferedReader)
打开新的输出文件文件(即某些写入程序)
直线=0
数据=从输入读取行
而(有数据)
直线=直线+1

如果(line>=y&&line这个问题被问到了,并且有一个用户接受的答案。请查看下面的链接

对不起,我不确定这些术语,因为我是新术语。哪个术语?类别?该“搜索(15)”是什么do?搜索文件中的第15行。不,@JuanManuel,它将转到第15个字节。是的。接受你的两个拇指规则。但是如何逐行读取并在特定实例中写入???@DeepakPrabhu我建议BufferedReader/BufferedWriter这样做。我将尝试逐行读取并在所需实例中写入..谢谢!@Ingou.FileWriter fw=new FileWriter(file,true);如果保持为true,则会在底部添加数据。如果保持为false,则会删除所有内容。我应该怎么做。我将概述算法,请务必遵循。
RandomAccessFile ra = new RandomAccessFile("abc.txt","rw" );// (file name, mode of file)
          ra.seek(15);// set the poss to overwrite
          ra.writeUTF("garbage");
 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