繁体   English   中英

如何将2D char数组写入文件

[英]how to write 2D char array into a file

如何将2D char数组写入文件。 我到处都在寻找解决方案,但没有找到答案。

void printDATA(){
String[][] stringArray = Arrays.copyOf(data, data.length, String[][].class);
char[][] charArray = new char[stringArray.length][stringArray[0].length];
            for(int i = 0; i < stringArray.length; i++)
            {
                for(int j = 0; j < stringArray[0].length; j++)
                {
                    charArray[i][j] = stringArray[i][j].charAt(0);
                }
            }
        File file = new File("result.doc");
        try {
            //FileWriter fout = new FileWriter(file);//Gives error
            PrintWriter fout = new PrintWriter(file);//This also gives error
            fout.write(charArray);
            fout.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

Writer API不支持写入数组数组。 仅是int (应该实际上是char ), Stringchar[] 循环遍历数组以进行写入。

for (int i = 0; i < charArray.length; i++) {
    fout.write(charArray[i]);
}

您可能还希望输入换行符。

伪代码:

for(int i =0;i< 1st dimension; i++)
   { for(int j =0;j< 2nd dimension; j++)
        {
          write (array[i][j])
          write (some symbol)
        }
  write (some other symbol)
   }

然后,当您要从文件中读取时,您将需要记住定界符号。

然后,您将需要将整个文件读取为String并使用第一个符号和第二个符号对其进行分割。

例如,让我们采用以下2D数组:

苹果橙菠萝。

香蕉番茄葡萄。

您可以将其作为一维字符串写入文件,例如:apple,orange,apple; banana,tomato,grape;

然后,当您以字符串形式读取文件时,分割成“;” 并获得:苹果,橙子,菠萝香蕉,番茄,葡萄

然后将每个分割为“,”,然后重新构建2D阵列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM