今天帮人修bug的过程中,有个哥们用java.util.Scanner去解析文件。那个代码在linux下跑没问题,但我把待分析的文件拖到本地后却怎么样也没法读
Scanner scanner;
try {
scanner = new Scanner(new File("part00219"));
System.out.println(scanner.hasNext());
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
这段无论如何都是输出false。开始我觉得应该是linux和windows换行符不同的问题,就去设delimiter,结果怎么设都没用,最后跟到源码里面才发现readInput里面有这段
try {
n = source.read(buf);
} catch (IOException ioe) {
lastException = ioe;
n = -1;
}
原来Scanner把IOException给吞了,只能用scanner.ioException()拿到上一个exception。
发现了问题,解决方案就好找了,我的情况,那个exception是java.nio.charset.MalformedInputException: Input length = 1,google后发现是字符集没设置,在创建scanner时指定字符集就能解决这个问题
scanner = new Scanner(new File("part00219"), "iso-8859-1");
我觉得Scanner这种处理exception的方式不好,这中c-style的方式在java中已经很少采用了,而且在没有任何提示的情况下 swollow exception,完全不是个好方式,不知道为什么会这么设计的。
分享到:
相关推荐
此例子是一个字符串转各种编码的demo,编码格式是已经定义好的,当然你也可以扩充,使用时只需要构造它的对象然后调用对应的转换格式的方法即可,很简单的!
还能实现带嗅探设置、统计分析、发包测试、进程监控、数据分析、编码转换和其他辅助功能(密码嗅探、邮件嗅探,文件传输嗅探等)的网络监视器,可以让你安装为网络驱动器共享文件夹,然后使用Windows资源管理器,...
Sonar Scanner是一种静态代码分析工具,旨在帮助开发者带来更高...Sonar Scanner可作为静态代码分析流程的一部分,通过与构建系统集成实现自动化分析,也可在将其作为一个插件运行于IDE中并为开发人员提供快速反馈。
Sonar Scanner是一种静态代码分析工具,旨在帮助开发者带来更高...Sonar Scanner可作为静态代码分析流程的一部分,通过与构建系统集成实现自动化分析,也可在将其作为一个插件运行于IDE中并为开发人员提供快速反馈。
Sonar Scanner是一种静态代码分析工具,旨在帮助开发者带来更高...Sonar Scanner可作为静态代码分析流程的一部分,通过与构建系统集成实现自动化分析,也可在将其作为一个插件运行于IDE中并为开发人员提供快速反馈。
使用彩色的位图编码的方式,进行强反光物体的扫描,和边界确定;广泛应用于三围扫描中
cordova-plugin-doc-scanner 该插件定义了一个全局DocScanner对象,该对象提供了用于拍照和裁剪照片的API... 图像作为Base64编码的String或图像文件的URI传递到成功回调。 docScanner.takePicture函数可打开设备的相机
为条码扫描器配置 SPP 模式 将命令条码打印在纸上,用扫描仪设备扫描“%%BT_SPP”命令,工作在SPP模式。 下载蓝牙扫描器 下载 2.4G 或 433 Scanner 安卓SDK SDK 和示例在蓝牙无线扫描器中工作,它演示了如何在 ...
返回捕获图像的URI或base64编码的字符串,使您可以轻松地存储它或随意使用它! 特征 : 实时检测透视校正和图像裁剪实时相机滤镜(亮度,饱和度,对比度) 闪易于使用的base64图像可以很容易地用插入两个平台如果您...
带嗅探设置、统计分析、发包测试、进程监控、数据分析、编码转换和其他辅助功能(密码嗅探、邮件嗅探,文件传输嗅探等)的网络监视器,在共享式局域网内能捕获流经本机的所有TCP、UDP、ICMP等数据包,并把捕获到的IP...
QR CodeBarcode Scanner Generator是一个高效的代码扫描器和生成器工具,它运行跨平台,支持扫描QRCode,Code_128,Code_93,Code_39,EAN_13,EAN_8,Aztec代码,UPC-A,UPC-E,数据矩阵,PDF-417, RSS_14等,支持...
用于将拉丁语编码的格鲁吉亚文本翻译成 unicode 的库,反之亦然,支持用户提供的词典和排除 用法 GeoTranslator translator = GeoTranslator . load( " words.dat " , " shis.dat " , " chis.dat " , " dzis.dat " ...
该插件本身只是VIP Scanner库的UI,可完成所有繁重的工作。 该库允许您创建任意的“检查”(例如UndefinedFunctionCheck),将它们分组为“评论”(例如WP.com主题审查),并针对主题,插件,目录,单个文件甚至差异...
QRCodeScanner 这是一个简单的二维码扫描仪,可... require ( [ 'qr-code-scanner' ] , function ( QRScanner ) { ... } ) // OR window . QRScanner 仅当页面中没有要求/定义可用时,才会创建全局QRScanner 。 原
该实用程序及其资源对FireEye Mandiant调查期间收集到的危害指标进行编码。 要了解更多信息,请。 总之,该实用程序将: 尽最大努力确定现有的妥协。 它不会: 在100%的时间内确定折衷方案,或 告诉您设备是否...
脉冲间隔编码此仓库提供了通过National Card卡与CBU MRI扫描仪(3T Siemens Prisma)接口的代码。 有关CBU设置的更多文档,请参阅。 Matlab的 对于新项目,我们建议使用。 该功能中包含文档,并在下面重新打印: ...
以“汽车”为应用模型的CRUD服务。使用Mockito和JUnit5执行的MVC测试。 特征: 增删改查 按颜色过滤 按品牌过滤 过滤日期 技术领域 Java 11 玛文 Sprint Boot2 胸腺 MySQL JDBC HTML,CSS 引导程序 JUnit 5 莫基托...
一个用 C 编码的简单有效的端口扫描器。 PortScanner\ 的简单 UI(用户界面)允许用户使用它的功能几乎没有问题。
为找到的每个条形码设置默认回调。 设置一次触发回调(可选) 检查 HTTP API 是否在线(Android 小程序是否打开) 当用户离开页面时关闭安卓小程序 如果小程序不在线,则重定向到小程序(如果已安装)或 Google ...
享受编码。 例子 $ ./netscanner --ip 10.0.1.1-10.0.1.11,10.0.1.12/32 --p 80 --pc tcp,udp --t 3000 Parameters: NAME: NetScanner - Network IP addresses and ports scanner USAGE: netscanner [global ...