日期:2014-05-20  浏览次数:20844 次

这段代码为何会写入的是字符,而不是int;
package stream;

import java.io.IOException;
import java.io.FileWriter;

public class FileWriterTest {

public static void main(String[] args)
{
try
{
FileWriter fw = new FileWriter("D://demo/test.txt");

char c1 = 'a';
char c2 = '国';
char c3 = 'b';

fw.write((int)c1);
fw.write((int)c2);
fw.write((int)c3);

fw.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}


在write的时候,已经将字符转换成了int类型,为什么在记事本中写入还是字符,而不是对应的数字?
如果要写入数字,该怎么操作呢?

------解决方案--------------------

            fw.write((int)c1 + "");
            fw.write((int)c2 + "");
            fw.write((int)c3 + "");

------解决方案--------------------
public void write(int c) 写入单个字符。
这是jdk文档的解释,要想输出转换后的数字可以用public void write(String str).

fw.write(String.valueOf((int) c1));
            fw.write(String.valueOf((int) c2));
            fw.write(String.valueOf((int) c3));