直接上代码 有注视package worktwo;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;public class Bank { public static void main(String[] args) throws IOException {
Scanner s = new Scanner(System.in);
File src = new File("F:\\test.txt");
if (!src.exists()) {
src.createNewFile();
} else
System.out.println("logn right"); System.out.println("1-存钱  2-取钱  3-查询余额  4-退出");
FileReader fr = new FileReader(src);
BufferedReader br = new BufferedReader(fr);
String num = br.readLine();
br.close();
int count;
if (num == null)
count = 0;
else
count = Integer.parseInt(num);
FileWriter fw = new FileWriter(src, false);
BufferedWriter bw = new BufferedWriter(fw); // 读出文件中的数字给count
int a = s.nextInt();// 进行操作选择
while (true) {
switch (a) {
case 1:// 存操作
System.out.println("存钱number");
int a1 = s.nextInt();
count = count + a1;
num = String.valueOf(count);
bw.write(num);
bw.flush(); break; case 2:// 取操作
System.out.println("取钱 number");
int a2 = s.nextInt();
if (a2 > count)
System.out.print("清输入正确的取款数");
else
count = count - a2;
bw.write(num);
bw.flush();
break; case 3:// 显示TXT中的数字
System.out.println(count);
num = String.valueOf(count);
bw.write(num);
break; case 4:// 退出
bw.close();
return;
default:
bw.close();
System.out.print("清输入正确的选项");
break;
}
}
}
}javaio

解决方案 »

  1.   

    每个case都执行open file 操作 close file
      

  2.   

    逻辑问题有点严重,程序有各种各样的bug啊
    按照你的思路给你修改了一些,不排除没有其他bug
    package com.kiritor;import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Scanner;public class Bank { public static void main(String[] args) throws IOException {
    Scanner s = new Scanner(System.in);
    File src = new File("F:\\test.txt");
    if (!src.exists()) {
    src.createNewFile();
    } else
    System.out.println("logn right"); System.out.println("1-存钱  2-取钱  3-查询余额  4-退出");
    FileReader fr = new FileReader(src);
    BufferedReader br = new BufferedReader(fr);
    String num = br.readLine();
    System.out.println(num+"test");
    br.close();
    int count;
    if (num == null)
    count = 0;
    else
    count = Integer.parseInt(num);//存款
    System.out.println("count:"+count);
    // 读出文件中的数字给count
    int a = s.nextInt();// 进行操作选择
    while (true) {
    switch (a) {
    case 1:// 存操作
    FileWriter fw = new FileWriter(src, false);
    BufferedWriter bw = new BufferedWriter(fw);
    System.out.println("存钱number");
    int a1 = s.nextInt();
    count = count + a1;
    num = String.valueOf(count);
    bw.write(num);
    bw.flush();
    bw.close();
    fw.close();
    System.out.println("选择操作:1-存钱  2-取钱  3-查询余额  4-退出");
                    a = s.nextInt();
    break; case 2:// 取操作
    FileWriter fw2 = new FileWriter(src, false);
    BufferedWriter bw2 = new BufferedWriter(fw2);
    System.out.println("取钱 number");
    int a2 = s.nextInt();
    if (a2 > count)
    System.out.print("清输入正确的取款数");
    else
    count = count - a2;

    bw2.write(String.valueOf(count));
    bw2.flush();
    bw2.close();
    fw2.close();
    System.out.println("选择操作:1-存钱  2-取钱  3-查询余额  4-退出");
    a = s.nextInt();
    break; case 3:// 显示TXT中的数字

    System.out.println(count);
    System.out.println("选择操作:1-存钱  2-取钱  3-查询余额  4-退出");
    a = s.nextInt();
    break; case 4:// 退出
    System.exit(0);
    return;
    default:

    System.out.print("清输入正确的选项");
    break;
    }
    }
    }
    }
      

  3.   


    嗯 是滴~就素多次写入的时候会出现错误啊然后读出就会莫名的非要定义俩FileWriter?