当前位置: 技术问答>java相关
怎么回事???
来源: 互联网 发布时间:2015-02-15
本文导语: 我把一个string "1234" filewritestringchars到一个txt文件 可是却变成了 "1 2 3 4 " 怎么肥了?而count一下还是4! 谢谢! | javad的字符是Unicode,一个占了两个字节。但它和ASCII兼容,如果是ASCII字符,...
我把一个string "1234"
filewritestringchars到一个txt文件
可是却变成了
"1 2 3 4 "
怎么肥了?而count一下还是4!
谢谢!
filewritestringchars到一个txt文件
可是却变成了
"1 2 3 4 "
怎么肥了?而count一下还是4!
谢谢!
|
javad的字符是Unicode,一个占了两个字节。但它和ASCII兼容,如果是ASCII字符,高位是空的。
有时候程序会根据你系统的字符集作自动转换。如:
import java.awt.*;
import java.io.*;
public class Hello{
public static void main(String args[]){
String a = "1234";
try{
FileWriter fw = new FileWriter("c:\a.txt");
fw.write(a);
fw.close();
}catch(IOException e){
}
}
}
在我的机器上就会得到4个字节的文件
有的类如 InputStreamReader,你可以通过构造函数指定字符集。如GB2312,ISO8859_1
有时候程序会根据你系统的字符集作自动转换。如:
import java.awt.*;
import java.io.*;
public class Hello{
public static void main(String args[]){
String a = "1234";
try{
FileWriter fw = new FileWriter("c:\a.txt");
fw.write(a);
fw.close();
}catch(IOException e){
}
}
}
在我的机器上就会得到4个字节的文件
有的类如 InputStreamReader,你可以通过构造函数指定字符集。如GB2312,ISO8859_1
|
char是16位的,1只用了8位,前8位为空,所以会这样。用字符字节转换流可解决
|
使用FileWriter的写方法试试。
|
如果没有进行字符集转换,这是正常现象。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。