Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java读/写,重命名有问题的文件_Java - Fatal编程技术网

Java读/写,重命名有问题的文件

Java读/写,重命名有问题的文件,java,Java,我用我的代码做了一个替换行功能。它最初工作,但突然我的新文件变成空白,代码没有带我回到AdminMenu,文件也没有被重命名。还有另一个问题,如果我使用\r\n,我试图删除的文件顶部将有一个空行。我尝试在totalChips之后使用\n,但似乎不起作用。我需要一些建议 输出 <Blank File> 代码如下 public static void AddChips() { File oldFileName = new File("players.dat");

我用我的代码做了一个替换行功能。它最初工作,但突然我的新文件变成空白,代码没有带我回到AdminMenu,文件也没有被重命名。还有另一个问题,如果我使用\r\n,我试图删除的文件顶部将有一个空行。我尝试在totalChips之后使用\n,但似乎不起作用。我需要一些建议

输出

<Blank File>
代码如下

 public static void AddChips() {
      File oldFileName = new File("players.dat");
      File tmpFileName = new File("newplayers.dat");

      BufferedReader br = null;
      BufferedWriter bw = null;

      ArrayList<String> player = new ArrayList<String>();
      try {
         br = new BufferedReader(new FileReader(oldFileName));
         bw = new BufferedWriter(new FileWriter(tmpFileName));
         String line;
         Scanner read = new Scanner(System.in);
         System.out.println("Please Enter Username");
         String UserN = read.nextLine();
         System.out.println("Please Enter Chips to Add");
         String UserCadd = read.nextLine();

         while ((line = br.readLine()) != null) {
                String[] details = line.split("\\|");
                String Username = details[0];
                String Password = details[1];
                String Chips = details[2];
                int totalChips = (Integer.parseInt(UserCadd)+ Integer.parseInt(Chips));
            if (Username.equals(UserN))
               line = Username + "|" + Password + "|" + totalChips;
               bw.write("\r\n"+line);
         }

            bw.close();
            br.close();
            oldFileName.delete();
            tmpFileName.renameTo(oldFileName);
            AdminMenu();


      } catch (Exception e) {
         e.printStackTrace();
          return;
      } finally {
         try {
            if(br != null)
               br.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
         try {
            if(bw != null)
               bw.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }

}

将e.printStackTrace放入每个捕捉块中。您正在抑制所有异常。在我添加了数组相同时我得到了Arrayoutofbounds后…将整个异常和完整跟踪添加到您的问题中。它以前工作正常,testcode.java文件中的第53行是。。。?
 public static void AddChips() {
      File oldFileName = new File("players.dat");
      File tmpFileName = new File("newplayers.dat");

      BufferedReader br = null;
      BufferedWriter bw = null;

      ArrayList<String> player = new ArrayList<String>();
      try {
         br = new BufferedReader(new FileReader(oldFileName));
         bw = new BufferedWriter(new FileWriter(tmpFileName));
         String line;
         Scanner read = new Scanner(System.in);
         System.out.println("Please Enter Username");
         String UserN = read.nextLine();
         System.out.println("Please Enter Chips to Add");
         String UserCadd = read.nextLine();

         while ((line = br.readLine()) != null) {
                String[] details = line.split("\\|");
                String Username = details[0];
                String Password = details[1];
                String Chips = details[2];
                int totalChips = (Integer.parseInt(UserCadd)+ Integer.parseInt(Chips));
            if (Username.equals(UserN))
               line = Username + "|" + Password + "|" + totalChips;
               bw.write("\r\n"+line);
         }

            bw.close();
            br.close();
            oldFileName.delete();
            tmpFileName.renameTo(oldFileName);
            AdminMenu();


      } catch (Exception e) {
         e.printStackTrace();
          return;
      } finally {
         try {
            if(br != null)
               br.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
         try {
            if(bw != null)
               bw.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }

}
java.lang.ArrayIndexOutOfBoundsException: 1
at testcode.AddChips(testcode.java:53)
at testcode.main(testcode.java:11)