怎么将这串代码改进成一个文件的数据经过更改后传入另一个文件中 package operation; import java.io.*; import java.util.Scanner; public class buyGoods { File file1 = new File("D:\\Users\\huawei\\IdeaProjects\\supermarket1.3\\src\\txt\\RecentGoods.txt"); File file2 = new File("D:\\Users\\huawei\\IdeaProjects\\supermarket1.3\\src\\txt\\UpdateGoods.txt"); public void buy(){ System.out.println("请输入您想要够买商品的名称:"); Scanner sc = new Scanner(System.in); try{ String name = sc.nextLine(); try(FileReader fr1 = new FileReader(file1); BufferedReader br1 = new BufferedReader(fr1); FileWriter fw2 = new FileWriter(file2); BufferedWriter bw2 = new BufferedWriter(fw2)){ while(true){ String line = br1.readLine(); String [] str = line.split(" "); if(str[1].equals(name)){ System.out.println("请输入您想要买的数量:"); Scanner sc1 = new Scanner(System.in); try{ double number = sc1.nextDouble(); bw2.write(); } catch(RuntimeException e){ System.out.println("请您输入数字!"); } } } } catch(IOException e){ e.printStackTrace(); } } catch(Exception e){ System.out.println("没有该商品,请您重新开始操作!"); } } }
时间: 2024-02-10 13:07:19 浏览: 70
你可以将更改后的商品信息存储到一个新的文件中,然后再将新文件的内容复制到原文件中实现更新。
具体操作如下:
1. 在 buyGoods 类中添加一个方法,用于将更改后的商品信息写入到新文件中:
```
public void writeToFile(String name, double number) {
try(FileWriter fw = new FileWriter(file2, true);
BufferedWriter bw = new BufferedWriter(fw)) {
bw.write(name + " " + number);
bw.newLine();
} catch(IOException e) {
e.printStackTrace();
}
}
```
2. 在 buyGoods 类中的 buy 方法中调用 writeToFile 方法,将更改后的商品信息写入到新文件中:
```
if(str[1].equals(name)) {
System.out.println("请输入您想要买的数量:");
Scanner sc1 = new Scanner(System.in);
try {
double number = sc1.nextDouble();
writeToFile(name, number);
} catch(RuntimeException e) {
System.out.println("请您输入数字!");
}
}
```
3. 在 buyGoods 类中添加一个方法,用于将新文件的内容复制到原文件中实现更新:
```
public void copyFile() {
try(FileReader fr = new FileReader(file2);
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter(file1);
BufferedWriter bw = new BufferedWriter(fw)) {
String line;
while((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
}
} catch(IOException e) {
e.printStackTrace();
}
}
```
4. 在 buyGoods 类中的 buy 方法中调用 copyFile 方法,将新文件的内容复制到原文件中实现更新:
```
copyFile();
```
这样,当用户输入要购买的商品名称和数量后,程序会将更改后的商品信息存储到新文件中,然后将新文件的内容复制到原文件中实现更新。
阅读全文