【发布时间】:2020-12-18 14:42:37
【问题描述】:
所以我有一个这样结构的文本文件(产品、价格、类别、数量)。
Apple
1.0
Fruits
120
Cucumber
1.4
Vegetables
110
Pear
1.6
Fruits
120
我需要一个可以删除第 N 项的函数,在这种情况下,第二项形成文件(即第 5、6、7、8 行),所以它看起来像这样:
Apple
1.0
Fruits
120
Pear
1.6
Fruits
120
我能找到的只是从文件中删除特定字符串的方法,但这不是我在这种情况下需要的。
编辑: 到目前为止,这是我的代码:
int place=2;
try{
File inputFile = new File("Cart.txt");
File tempFile = new File("Cart1.txt");
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
int itemToRemove=place*4;
String currentLine;
int line=0;
while((currentLine = reader.readLine()) != null) {
if(line!=itemToRemove||line!=itemToRemove+1||line!=itemToRemove+2||line!=itemToRemove+3){
writer.write(currentLine + System.getProperty("line.separator"));
}
line++;
}
writer.close();
reader.close();
tempFile.renameTo(inputFile);
}catch(Exception x){}
它应该从文件中删除第二个项目,但它只是复制一个
【问题讨论】:
-
请向我们展示您的代码并详细说明问题所在。
-
我猜这是作业所以你必须展示一些代码
-
您也可以读取文件并删除项目并重写到同一文件
-
使用 Files 类对每一行进行流式传输/循环并删除您需要的任何内容。
-
我已经用代码更新了我的帖子