如何将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();
}
}
答案 0 :(得分:1)
Writer API不支持编写数组数组。仅int
(应该是char
),String
或char[]
。循环遍历数组以进行写入。
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阵列。