关于字节流的问题。 请问在字节流中,流按字节来读取和写入数据,但是如果一个字符的2进制是2个字节的,那么读取的时候,流是如何判断读出的2个字节是一个字符的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 流自身是无法判断的. 这个判断得由你作出..什么时候用字符流 什么时候用字节流. 要是流会自己判断的话..那就不会有这么多乱码的问题了.下面有两段jdk的 inputstream 跟 Reader的代码. 你就能清楚的开出来怎么读了..InputStream: public int read(byte b[]) throws IOException {//很明显是按照 byte来读的. return read(b, 0, b.length); }Reader: public int read() throws IOException {//很明显是按照char 来读的. 而java里面的char是可以装中文的. 所以用这个字符流可以读中文字符. char cb[] = new char[1]; if (read(cb, 0, 1) == -1) return -1; else return cb[0]; }就这样喽.. 我觉得这个没什么问题一般不可能字节和字符混用,byte得到后也可以转成String C++菜鸟求指导! Java继承问题求教 深入理解.net java平台底层 java解析word时怎么获得word文档的title呀? ImageIO.read(),Invalid ICC Profile Data的问题,jdk的bug??? 菜鸟请教package和import的问题 用Java socket 连接网站 获取html代码 怎样使产生的随机数不出现重复 急,帮忙看看 不知道哪里错了, Java中Menu时间 输入两个参数,一个是一组数,第二个是一个整形数(每个组合的个数),要求返回所有的组合
InputStream:
public int read(byte b[]) throws IOException {//很明显是按照 byte来读的.
return read(b, 0, b.length);
}Reader:
public int read() throws IOException {//很明显是按照char 来读的. 而java里面的char是可以装中文的. 所以用这个字符流可以读中文字符.
char cb[] = new char[1];
if (read(cb, 0, 1) == -1)
return -1;
else
return cb[0];
}就这样喽..