Java - Buffered Writer 写入多维数据集不是 int
Java - Buffered Writer writes cubes Not int
我在Java.
中写入文件有点问题
我使用 File f = new File(path);
创建了一个新文件,并且
写入该文件的 BufferedWriter
。还有一个 int i = 1;
现在缓冲写入器(文件写入器)应将 int i 写入文件
但它没有,它写了 CUBES!就像这个■。
当 Scanner 读取文件时,它读取那个立方体,并发生错误,
这是一个例子:
int i = 1;
File f = new File(path);
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write(i);
int b = 0;
Scanner s = new Scanner(new FileReader(f));
b = s.nextInt();
//end
但出于某种原因,它写入了一个立方体 ■ 而不是数字 1,这就是扫描仪无法读取它的原因。
知道为什么会这样吗?
-谢谢你的帮助。 ■
write 方法不会将整数值写入文本,而是将整数解释为字符代码。
你最好用PrintWriter
,这样更舒服。有了它,您可以使用与 System.out
.
中相同的打印方法
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(f)));
writer.print(i);
您还应该知道,您隐式使用了默认平台编码,即 Windows 的 Cp1252 (Windows ANSI),Linux 通常为 UTF-8。为避免意外行为,建议始终明确设置字符编码。然后你最终得到:
PrintWriter writer = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(f), "UTF-8")));
这有点复杂,但文件编码在您的控制之下。
我在Java.
中写入文件有点问题我使用 File f = new File(path);
创建了一个新文件,并且
写入该文件的 BufferedWriter
。还有一个 int i = 1;
现在缓冲写入器(文件写入器)应将 int i 写入文件
但它没有,它写了 CUBES!就像这个■。
当 Scanner 读取文件时,它读取那个立方体,并发生错误,
这是一个例子:
int i = 1;
File f = new File(path);
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write(i);
int b = 0;
Scanner s = new Scanner(new FileReader(f));
b = s.nextInt();
//end
但出于某种原因,它写入了一个立方体 ■ 而不是数字 1,这就是扫描仪无法读取它的原因。
知道为什么会这样吗? -谢谢你的帮助。 ■
write 方法不会将整数值写入文本,而是将整数解释为字符代码。
你最好用PrintWriter
,这样更舒服。有了它,您可以使用与 System.out
.
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(f)));
writer.print(i);
您还应该知道,您隐式使用了默认平台编码,即 Windows 的 Cp1252 (Windows ANSI),Linux 通常为 UTF-8。为避免意外行为,建议始终明确设置字符编码。然后你最终得到:
PrintWriter writer = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(f), "UTF-8")));
这有点复杂,但文件编码在您的控制之下。