字符流和字节流read方法返回的int值有什么区别 字符流复制文件异常的原理是什么希望能详细讲字节和字符之间的转换 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在java里一个字符是由2个字节组成,表示一个Unicode编码,仅此而已。字节是表示所有对象的最小单位,也即是说所有的对象都是用字节来表示的。只不过你要遵守约定的规范来表示,这个规范就是编码。请自行百度关键字:ASCII、Unicode、UTF-8、GB2312等等编码。 我想问的是字符流复制文件的原理read方法读取字节然后返回int值 ,然后write方法接收int值参数,然后转字节写入文件 ,的详细流程,例如返回的是int值代表什么, 和非字符 返回int值是什么字符'a' 或者','在unicode码表中也是两个字节吗? read方法读取字节然后返回int值 ,然后write方法接收int值参数,然后转字节写入文件 ,的详细流程,例如返回的是int值代表什么, 和非字符 返回int值是什么您说的这些api每个方法注释里写的都很清楚啊,不是不愿告诉你,请先自行阅读。字符'a' 或者','在unicode码表中也是两个字节吗?是的,所有字符包括中文在java里都是用2个字节表示的,因为java的char就是用Unicode编码的。而Unicode编码对所有字符都是2个字节来表示。你可百度 java 字符 char,肯定能得到满意的答案。其实楼主更应该去掌握下字符编码的知识,很多问题自然就明白了。 字符流和字节流read方法返回的值, 有关联吗?api的解释是一个是字符,一个是字节 但是不是说字符是两个字节吗? 这是否意味着这两个可以互转, 或者说FileInputStream fi = new FileInputStream("read.txt"); FileReader fr = new FileReader("read.txt"); System.out.println(fi.read()); // 196 二进制:11000100 System.out.println(fi.read()); // 227 二进制:11100011 System.out.println(fr.read()); // 20320 二进制: 100111101100000从二进制看这两个数字没任何关系啊我不太能理解ASCII和unicode之间的关系 , 顺便说下我是百度没有找到才提问的 ### 字符流和字节流的区别#### 编码表- ASCII码表: 中中文占两个字节 Unicode码表: 中所有符号占两个字节, 包括符号和字母- #### 读取方式`重载read()` - 字符流 - 单字符 - 读取字节 - 返回字节, 'a'的字节是97 - 字节流 - 单字节 - 根据码表对应字节数来决定读取多少个字节,然后补全至八位int值 - 读取的字符 - 代码分析```javaclass Test { public static void main(String[] args) throws IOException { FileInputStream fi = new FileInputStream("read.txt"); // 字节流读取'你' int temp = fi.read(); System.out.println(temp); // 结果为 196 FileReader fr = new FileReader("read.txt"); // 字符流读取'你' int t emp2 = fr.read(); System.out.println(temp2); // 结果为 20320 }}```#### 写入方法`重载write()`- 字节流 - 传入字节的int值 - 写入字节- 字符流 - 传入字符 - 根据平台默认码表拆分字节写入文件 #### 字节流输出字符异常- 不能确定多少个字节表示一个字符, 例如不同的平台默认字符集码表,unicode编码是2个字节一个字符, 而utf-8编码是3个字节一个字符#### 字符流复制文件异常- 按照平台默认字符集读取2个字节, 写入的时候查码表没有找到对应不知道这样能否理解我的问题 字节读取int 返回 0 到 255 范围内的 int 字节值。如果因已到达流末尾而没有可用的字节,则返回值 -1。字符读取int 作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1 新手提问,Java7有什么新特性吗? 求助!java io问题啊!!! java一道面试问题,在线等 急 急:怎样对jpg图片进行BASE64编码 设计GUI时,paint方法的调用时间 请教关于DES的简单问题 大家能推荐几本JAVA书给小弟吗? java深度抓取的问题 sqlserver2000 操作出错,请高手指点: 新手提问:是关于包的问题 新手上路,,,很简单的关于format的问题 在servlet使用BufferedReader读取文件流后,怎么通过文件流下载,基础不好请指教
read方法读取字节然后返回int值 ,然后write方法接收int值参数,然后转字节写入文件 ,的详细流程,例如返回的是int值代表什么, 和非字符 返回int值是什么
字符'a' 或者','在unicode码表中也是两个字节吗?
您说的这些api每个方法注释里写的都很清楚啊,不是不愿告诉你,请先自行阅读。
字符'a' 或者','在unicode码表中也是两个字节吗?
是的,所有字符包括中文在java里都是用2个字节表示的,因为java的char就是用Unicode编码的。而Unicode编码对所有字符都是2个字节来表示。你可百度 java 字符 char,肯定能得到满意的答案。其实楼主更应该去掌握下字符编码的知识,很多问题自然就明白了。
api的解释是一个是字符,一个是字节 但是不是说字符是两个字节吗? 这是否意味着这两个可以互转, 或者说
FileInputStream fi = new FileInputStream("read.txt");
FileReader fr = new FileReader("read.txt");
System.out.println(fi.read()); // 196 二进制:11000100
System.out.println(fi.read()); // 227 二进制:11100011
System.out.println(fr.read()); // 20320 二进制: 100111101100000从二进制看这两个数字没任何关系啊
我不太能理解ASCII和unicode之间的关系 , 顺便说下我是百度没有找到才提问的
Unicode码表: 中所有符号占两个字节, 包括符号和字母
-
#### 读取方式`重载read()` - 字符流 - 单字符
- 读取字节
- 返回字节, 'a'的字节是97
- 字节流 - 单字节 - 根据码表对应字节数来决定读取多少个字节,然后补全至八位int值
- 读取的字符
- 代码分析
```java
class Test { public static void main(String[] args) throws IOException {
FileInputStream fi = new FileInputStream("read.txt");
// 字节流读取'你'
int temp = fi.read();
System.out.println(temp); // 结果为 196
FileReader fr = new FileReader("read.txt");
// 字符流读取'你'
int t
emp2 = fr.read();
System.out.println(temp2); // 结果为 20320 }
}
```
#### 写入方法`重载write()`
- 字节流
- 传入字节的int值
- 写入字节
- 字符流
- 传入字符
- 根据平台默认码表拆分字节写入文件
#### 字节流输出字符异常
- 不能确定多少个字节表示一个字符, 例如不同的平台默认字符集码表,unicode编码是2个字节一个字符, 而utf-8编码是3个字节一个字符#### 字符流复制文件异常- 按照平台默认字符集读取2个字节, 写入的时候查码表没有找到对应不知道这样能否理解我的问题
字符读取int 作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1