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

时间:2015-10-08 16:54:04

标签: java arrays 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();
        }
    }

2 个答案:

答案 0 :(得分:1)

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

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

您可能也想要输入换行符。

答案 1 :(得分:0)

的伪代码:

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数组:

苹果橙菠萝。

香蕉番茄葡萄。

您可以将其作为1D字符串写入文件: 苹果,桔子,菠萝;香蕉,西红柿,葡萄;

然后,当您将文件作为字符串读取时,您将拆分为&#34;;&#34;得到: 苹果,橘子,菠萝 香蕉,西红柿,葡萄

然后将每一个分成&#34;,&#34;并重新构建您的2D阵列。