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());