最近写程序,发现在文件中输出整形数据时候会产生乱码。
程序的代码如下:package testFirst;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;public class test {
public static void main(String[] args) throws IOException {
String src="d:/test.txt";
BufferedWriter filein=new BufferedWriter(new FileWriter(src));
int example=23224244;
filein.write(example); //在文件中输出整形数据时会乱码。
String example2="hello world!";
filein.write(example2); //在文件中输出字符串时就不会有乱码。
filein.close();
}
}我试过用DataOutputStream中的writeInt输出,但是仍然有乱码现象。
我想可能是编码问题,因为java输出默认的是Unicode编码,但是,我如果想在文件中输出整形数据该怎么做啊?
程序的代码如下:package testFirst;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;public class test {
public static void main(String[] args) throws IOException {
String src="d:/test.txt";
BufferedWriter filein=new BufferedWriter(new FileWriter(src));
int example=23224244;
filein.write(example); //在文件中输出整形数据时会乱码。
String example2="hello world!";
filein.write(example2); //在文件中输出字符串时就不会有乱码。
filein.close();
}
}我试过用DataOutputStream中的writeInt输出,但是仍然有乱码现象。
我想可能是编码问题,因为java输出默认的是Unicode编码,但是,我如果想在文件中输出整形数据该怎么做啊?
FileInputStream fistream = new FileInputStream(fromPath);
BufferedReader breader = new BufferedReader(new InputStreamReader(fistream, "unicode"));
FileOutputStream fos = new FileOutputStream(textName, true);
OutputStreamWriter output = new OutputStreamWriter(fos, "unicode");
writer = new BufferedWriter(output);
filein.write(String.valueOf(example));
不过我不怎么明白为什么在example后面加上个+“”就是输出字符流了,呵呵,刚接触java不久,还比较小白麻烦指点一下啊
是BufferedWriter本身就是字符流,你看名字是Writer或者Reader的都是处理字符的,字节流入1楼提到的以Stream结尾的FileInputStream等区别很多地方都说过,你站内搜索也可以找到很多讨论,这里就不多说了