Java 使用行号删除文件中的特定行

Java 使用行号删除文件中的特定行,java,Java,所以问题是我有一个文本文件,它存储了很多行的信息。每一行应如下所示: 产品: 我正在尝试编写代码,帮助用户输入一个数字,程序将找到一行对应的数字,并删除该行。有什么建议吗?尝试使用以下代码行: FileInputStream fs= new FileInputStream("someFile.txt"); BufferedReader reader = new BufferedReader(new InputStreamReader(fs)); BufferedWriter writer =

所以问题是我有一个文本文件,它存储了很多行的信息。每一行应如下所示:

产品:<名称:,进口价格:,数量:>


我正在尝试编写代码,帮助用户输入一个数字,程序将找到一行对应的数字,并删除该行。有什么建议吗?

尝试使用以下代码行:

FileInputStream fs= new FileInputStream("someFile.txt");

BufferedReader reader = new BufferedReader(new InputStreamReader(fs));
BufferedWriter writer = new BufferedWriter(new FileWriter(fs));

for(int i = 0; i < file_length; ++i){
   br.readLine();
   String lineIWant = br.readLine();
   if(i==your line number){
       i = file_length;
       writer.write(currentLine + System.getProperty("line.separator"));
   }
}
reader.close();
writer.close();
FileInputStream fs=newfileinputstream(“someFile.txt”);
BufferedReader=新的BufferedReader(新的InputStreamReader(fs));
BufferedWriter writer=新的BufferedWriter(新文件写入程序(fs));
对于(int i=0;i
您也可以使用LineNumberReader:

import java.io.LineNumberReader;
import java.io.FileReader;
import java.io.IOException;

class Stackoverflow36491903 {
    public static void main(String[] args) throws IOException {
        int lineNo = Integer.valueOf(args[1]);

        LineNumberReader r = new LineNumberReader(new FileReader(args[0]));
        while (true) {
            String line = r.readLine();
            if (line == null) {
                break;
            }
            if (r.getLineNumber() != lineNo) {
                System.out.println(line);
            }
        }
    }
}
接受两个参数:文件名和行号

这只是打印在请求行号处删除行的行


使用书写器将其写回文件。

阅读:阅读这是一个在每行中包含固定长度字符的文件,然后您可以轻松地跳转到特定行号,而无需阅读以前的行号,否则您已阅读所有以前的行号,并对读取的行号进行计数。使用或或如何获得
文件长度
?@muzahidbechara plz阅读此链接为什么您的代码如此混乱
如果(i==您的行号){//error
br.readLine();
-
br
不存在,则是关于
reader
变量的。最好包含我们可以编译的完整代码
Scanner scan = new Scanner(System.in);
int lineNum = scan.nextInt();
File file = new File("file.txt");
FileReader reader = new FileReader(file);
scan = new Scanner(reader);
StringBuilder sb = new StringBuilder("");
while(scan.hasNextLine()) {
    String line = scan.nextLine();
    if (--lineNum != 0) sb.append(line).append(System.getProperty("line.separator"));
}
FileWriter writter = new FileWriter(file);
writter.write(sb.toString());