JAVA中read()是如何读取字符的、read()的返回值为什么要赋给整型变量?配合available读取字长时它们的工作原理是什么? |
您所在的位置:网站首页 › 注册机工作原理是什么 › JAVA中read()是如何读取字符的、read()的返回值为什么要赋给整型变量?配合available读取字长时它们的工作原理是什么? |
最近,本人初学Java中有关文件输入输出时,遇到了一些疑惑,给大家看一段利用read()读取文档字符并将字符输出到屏幕的代码片段: 其中“测试.txt”文档中存放的字符串是“aaaaaa”,运行结果为: 可能很多初学者像我一样都对while循环中的语句有以下疑惑: 1、fin.available()是用来计算可读文件的的字长的,应该是恒大于零的,那岂不是死循环?(猜想fin.available()是递减的) 2、fin.read()从文档中读取的应该是字符,那为什么赋给整型变量data呢?(猜想read()是将字符转换为Ascll码) 为了验证,于是我在代码中加入了以下两句: 结果显示: 从输出结果可以看出: 1、(读取的位置就像这根竖线一样向后移动“|aaaaaa->a|aaaaa->aa|aaaa->aaa|aaa->aaaa|aa->aaaaa|a->aaaaaa|”) 一开始起始位置在字符串最前端,循环中每经过一次read(),读取的位置就自动向后移一位字符,fin.available()是从读取的位置向后计算还有多长的字节可以读取,因此,fin.available()是一直递减,直至读取的位置移到字符串末尾,fin.available()变为0,读取循环结束; 2、输出的data值就是字符的Ascll码,然后write(data)再将Ascll码转换为字符显示出来; 以上纯属个人试验后的理解,欢迎交流指正。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |