【发布时间】:2023-03-25 08:26:01
【问题描述】:
我需要从 txt 文件中检索并删除随机行(同一行)。到目前为止,我已经想出了以下代码:
public String returnAndDeleteRandomLine(String dir) throws FileNotFoundException, IOException {
try (BufferedReader br = new BufferedReader(new FileReader(dir))) {
//StringBuilder sb = new StringBuilder();
//System.out.println("Value of line before while() " + line);
ArrayList fileContents = new ArrayList();
int maxLines = 0;
String line = br.readLine();
//System.out.println("Value of line before while() " + line);
while (line != null) {
fileContents.add(line.toString());
line = br.readLine();
//System.out.println("Value of line is: " + line);
}
System.out.println("Value of maxLines() " + maxLines);
Random rand = new Random();
int randomNumber = rand.nextInt(maxLines - 1) + 1;
System.out.println("Value of randomNumber: " + randomNumber);
int lineNumber = randomNumber;
if (fileContents.isEmpty()) {
return null;
} else System.out.println("Value of random line: " + fileContents.get(randomNumber).toString());
return fileContents.get(randomNumber).toString();
}
}
但我不断收到不同的错误。最近的错误是:
maxLines() 的值 0 线程“main”中的异常 java.lang.IllegalArgumentException:bound 必须为正 java.util.Random.nextInt(未知来源)在 TransmitToFile.returnAndDeleteRandomLine(TransmitToFile.java:247) 在 Main.main(Main.java:98)
我什至无法删除该行,因为我仍然无法检索该行。
【问题讨论】: