用java实现文件读写 比如有购物清单文件shopping.txt。 (以下内容为示例,大家作业内容随意) 卖家:天猫tmall。芒果198元,蓝莓78元,大枣160元。 卖家:京东jd。笔记本3500元,硬盘1480元。 卖家:得到app。吴军299元,熊逸199元,严伯钧199元。 卖家:抖音。勿忘我19.9 海鲜大礼包99元。 要求按行读取购物单,并在该行的后面加上消费总额,然后将该行写到一个名字为buyingList.txt的文件中。 卖家:天猫tmall。芒果198元,蓝莓78元,大枣160元。消费总额:436.0元。 卖家:京东jd。笔记本3500元,硬盘1480元。消费总额:4980.0元。 卖家:得到app。吴军299元,熊逸199元,严伯钧199元。消费总额:697.0元。 卖家:抖音。勿忘我19.9 海鲜大礼包99元。消费总额:118.9元。 (示例代码FenXi、AnalyseFile)
时间: 2023-09-05 11:08:07 浏览: 168
好的,我可以为您提供代码示例。以下是使用Java实现文件读写的示例代码:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileReadWriteExample {
public static void main(String[] args) {
String inputFileName = "shopping.txt";
String outputFileName = "buyingList.txt";
try (BufferedReader reader = new BufferedReader(new FileReader(inputFileName));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFileName))) {
String line;
while ((line = reader.readLine()) != null) {
double totalAmount = calculateTotalAmount(line);
String lineWithTotal = line + "消费总额:" + totalAmount + "元。";
writer.write(lineWithTotal);
writer.newLine();
}
System.out.println("购物单已处理完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
private static double calculateTotalAmount(String line) {
double totalAmount = 0.0;
String[] items = line.split("。");
for (String item : items) {
if (item.contains("元")) {
String[] parts = item.split("元");
String priceStr = parts[0].replaceAll("[^0-9.]", ""); // 去除非数字和小数点的字符
double price = Double.parseDouble(priceStr);
totalAmount += price;
}
}
return totalAmount;
}
}
```
代码说明:
1. `inputFileName` 和 `outputFileName` 分别是输入文件和输出文件的文件名,可以根据实际情况修改。
2. 在 `try` 后面使用了 Java 7 引入的 try-with-resources 语法,可以自动关闭文件流,无需手动调用 `close()` 方法。
3. 在 `while` 循环中,使用 `readLine()` 方法逐行读取购物清单文件中的内容。
4. 在 `calculateTotalAmount()` 方法中,实现了计算每行消费总额的逻辑。该方法首先将每行按照“。”符号分割成多个商品,然后依次遍历每个商品,如果商品名称中包含“元”字样,则截取出商品价格并累加到总额中。
5. 在写入输出文件时,将每行字符串与总额字符串拼接起来,然后写入文件并且换行。
6. 在 `catch` 块中简单处理了异常,将异常堆栈信息打印到标准错误输出流中。
7. 最后输出一条处理完成的消息,提示程序执行完毕。
注意:该示例代码中的计算总额的逻辑十分简单,仅适用于该购物清单文件的格式。在实际应用中,需要根据实际情况修改计算总额的逻辑。此外,还需要注意处理文件读写过程中可能抛出的异常。
阅读全文