用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 09:15:14 浏览: 128
好的,您的问题是如何用 Java 实现按行读取购物单并计算消费总额,并将结果写入文件中?
可以按照以下步骤实现:
1. 创建一个名为 shopping.txt 的文件,将购物清单写入文件中;
2. 创建一个名为 buyingList.txt 的文件,用于存储每个卖家的购物清单和消费总额;
3. 使用 Java 的 BufferedReader 类按行读取 shopping.txt 文件;
4. 对于每一行购物清单,解析卖家名称和商品价格,并计算消费总额;
5. 将每一行购物清单和消费总额写入 buyingList.txt 文件中。
以下是示例代码:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.DecimalFormat;
public class AnalyseFile {
public static void main(String[] args) {
String inputFilePath = "shopping.txt";
String outputFilePath = "buyingList.txt";
BufferedReader reader = null;
BufferedWriter writer = null;
DecimalFormat df = new DecimalFormat("#0.0");
try {
reader = new BufferedReader(new FileReader(inputFilePath));
writer = new BufferedWriter(new FileWriter(outputFilePath));
String line = null;
while ((line = reader.readLine()) != null) {
double total = 0;
String[] elements = line.split("。");
String seller = elements[0];
String[] items = elements[1].split(",");
for (String item : items) {
String[] parts = item.split("元");
double price = Double.parseDouble(parts[0]);
total += price;
}
writer.write(seller + "。" + elements[1] + "消费总额:" + df.format(total) + "元。\n");
}
System.out.println("购物清单处理完成!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
该代码实现了按行读取购物清单文件 shopping.txt,对每一行购物清单进行解析并计算消费总额,然后将结果写入 buyingList.txt 文件中。在 buyingList.txt 文件中,每一行购物清单和消费总额之间加上了一个“消费总额:”的标识符,方便查看结果。
阅读全文