自从我创建并写入文件以来已经有一段时间了。我已经创建了该文件并且我已经写了但是我得到了一些奇怪的字符。应该在文件中的唯一数字是-1,0和1.
现在我得到了我需要的数字,但我需要它们在文本文件中显示为2d数组。
示例:
-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]));
}
}
bw.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
答案 0 :(得分:2)
我建议您使用BufferedWriter
,因为它更容易。
将文本写入字符输出流,缓冲字符 提供单个字符,数组和 字符串。
此外,您无需附加.txt
,AFAIK,因为JFileChooser
将返回全名。
SSCCE:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class WriteToFileExample {
public static void main(String[] args) {
try {
String content = "This is the content to write into file";
File file = new File("/users/mkyong/filename.txt");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content,0,content.length());
bw.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
}
}
取自Mykong。
答案 1 :(得分:2)
来自write(int c)
方法的documentation
写一个字符。要写入的字符包含在给定整数值的16个低位中; 16位高位被忽略。
换句话说,您正在从Unicode表中传递字符索引。
您可能需要的是
fw.write(String.valueOf(gameArray[row][col]));
首先将整数转换为String并写入其字符。
还要考虑使用PrintWriter
包装您的作者,其中包含print
,println
等方法(类似于System.out),这样您就可以使用
fw.print(gameArray[row][col]);
答案 2 :(得分:0)
使用整数参数检查documentation,write
会写入单个字符。我想你的gameArray
有整数元素。
将元素转换为字符串,并注意在数字之间添加空格。像
这样的东西fw.write(" " + gameArray[row][col]);
会奏效。