有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将2d数组写入需要看起来像数组的文件

我有以下代码创建并写入文件,但它在一条实线中写出所有内容

示例:11111111111111111111

我需要它如下所示(每个数字之间的空格):

1 1 1 1 1 1 
1 1 1 1 1 1
1 1 1 1 1 1

这是我的密码:

public void saveFile()
{
   String save = "Testing";
   JFileChooser fc = new JFileChooser();
   int returnVal = fc.showSaveDialog(null);


    if (returnVal == JFileChooser.APPROVE_OPTION) {
        try {
            FileWriter bw = new FileWriter(fc.getSelectedFile()+".txt");

            for(int row = 0; row < gameArray.length; row++)
           {
               for(int col =0; col < gameArray[row].length; col++)
               {

                  bw.write(String.valueOf(gameArray[row][col]));
                  System.out.println(gameArray[row][col] + " ");
                  System.out.println();
               }
           }
            bw.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}


共 (3) 个答案

  1. # 1 楼答案

    这应该适合您:

    public void saveFile()
    {
       String save = "Testing";
       JFileChooser fc = new JFileChooser();
       int returnVal = fc.showSaveDialog(null);
    
    
    if (returnVal == JFileChooser.APPROVE_OPTION) {
        try {
            FileWriter bw = new FileWriter(fc.getSelectedFile()+".txt");
    
            for(int row = 0; row < gameArray.length; row++)
           {
               for(int col =0; col < gameArray[row].length; col++)
               {
    
                  bw.write(String.valueOf(gameArray[row][col]);
                  if ((col+1)!=gameArray[row].length)
                     bw.write(" ");
                  System.out.println(gameArray[row][col] + " ");
                  System.out.println();
               }
                  bw.write(System.getProperty("line.seperator"));
           }
            bw.close();
    
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    
    }
    
  2. # 2 楼答案

    这是因为你没有在它们之间留出空间

    bw.write(String.valueOf(gameArray[row][col]));
    bw.write(" ");
    

    在内环的末端

    bw.write("\n");
    
  3. # 3 楼答案

    在内部循环的末尾写入bw.write("\n")

    就像:

    for(int row = 0; row < gameArray.length; row++)
           {
               for(int col =0; col < gameArray[row].length; col++)
               {
    
                  bw.write(String.valueOf(gameArray[row][col]));
                  System.out.println(gameArray[row][col] + " ");
                  System.out.println();
               }
               bw.write("\n")
           }