Java--因为char类型无法强制转换负数导致IO读取文件无法停止问题
来源:互联网 发布:linux 代理 编辑:程序博客网 时间:2024/05/10 04:48
首先先抛出代码,大家可以试一试,可以看看有什么错误
char ch = 0;try {//随便读取一个文件InputStreamReader in = new InputStreamReader(new FileInputStream("C:\\Users\\Administrator\\Desktop\\222.txt"));//循环不断的读取文件内容while ((int) ch != -1) {ch = (char) in.read();//输出内容,会发现无法停止System.out.println(ch);}} catch (Exception e) {e.printStackTrace();}
由于char数据类型无法强制转换负数,导致强制转换成‘?‘,所以最终无法停止读取
修改一下代码,不再对ch强制转换负数。
int ch = 0;try {//随便读取一个文件InputStreamReader in = new InputStreamReader(new FileInputStream("C:\\Users\\Administrator\\Desktop\\222.txt"));//循环不断的读取文件内容while ( ch != -1) {ch = in.read();//输出内容,会发现可以停止System.out.println((char)ch);}} catch (Exception e) {e.printStackTrace();}
因为Java把字符当作整数对待,Java采用的是unicode编码(无符号编码),所以char型可以转换0~65536之间的数字,若想试的可以试一试。
1 0
- Java--因为char类型无法强制转换负数导致IO读取文件无法停止问题
- char * 强制类型转换
- “无法将类型"string"转换为"char"”?
- 无法转换解决方案文件“*.sln”,因为无法修改它
- 因为前缀索引问题导致mysql无法使用覆盖索引
- 解决char *无法转换为LPCWSTR问题
- 解决char *无法转换为LPCWSTR问题
- Intellij Idea 中Java文件太长导致无法识别问题
- TypeError: Error #1034: 强制转换类型失败:无法将 ...
- 关于mysql中由于类型转换导致索引无法使用的问题
- 关于MVC中无法将类型为“System.Int32”的对象强制转换为类型“System.String”的问题。
- 权限问题导致无法删除ftp文件
- java中强制类型转换问题
- 错误 强制类型转换错误 查出来是对象类 无法强制转换为list
- java读取数据库char类型字段问题
- 无法将类型“string”隐式转换为“char
- MIME设置问题导致网站上某些类型文件无法下载(以ISO为例)
- java基础_String类型和char类型、自动类型提升和强制类型转换
- ReactNative
- psychology
- (源代码)最优控制与姿控喷流在导弹姿态控制中的应用
- 关于ASP.NET Web Api的HelpPage文档注释问题
- Java中单元测试中:@BeforeClass,@Before,@Test,@After
- Java--因为char类型无法强制转换负数导致IO读取文件无法停止问题
- 【leetcode】search insert position
- Android视频添加时间水印
- BM3D
- POJ3984——迷宫问题
- 对Web容器初始化的过程简单理解
- InitializeObjectAttributes宏
- IntelliJ IDEA新手使用心得
- java调用bat文件判断系统是32还是64位,并设置环境变量