上周末的时候。朋友约好去KTV,鉴于我这样的不怎么听歌的孩子伤不起啊,灵机一动就把我的酷狗歌单导出来了,XML文件嘛,内容太多,我仅仅想要歌名足已。

于是写了一个java去输出歌名。

    岂料我受到了挫伤, scanner. hasNextLine ()一直为false,于是我百思不得姐啊,经过调试发现,Scanner内部有 java.nio.charset.UnmappableCharacterException ,就百度了一下,没找到答案。google訪问不了。想起公司的网络是香港的,就远程上去,还好在stackoverflow上找到了答案。O(∩_∩)O~~
  原来用修改以下一行就OK啦,不解释,你懂的。不懂就去stackoverflow。
     Scanner scanner= new  Scanner( new  File(filePath), "UTF-8" );
URL: http://stackoverflow.com/questions/19252321/findwithinhorizon-fails-to-match (这个页面上你能够学到很多其它) 
Java Code:          
  1. public void output(String filePath) throws FileNotFoundException{
  2. Scanner scanner=new Scanner(new File(filePath));
  3. String str=null;
  4. while(scanner.hasNextLine()){
  5. str=scanner.nextLine();
  6. if(str.indexOf("FileName")>0){
  7. System.out.println(str.substring(str.indexOf(">")+1, str.lastIndexOf("<")));
  8. }
  9. }
  10. scanner.close();
  11. }
File content:
  1. <File>
  2. <MediaFileType>0</MediaFileType>
  3. <FileName>周杰伦 - 爱在西元前.mp3</FileName>
  4. <FilePath>D:\music\</FilePath>
  5. <FileSize>5623610</FileSize>
  6. <Duration>234292</Duration>
  7. <Hash>0589341ba15528a4c63e36c49a3c0e45</Hash>
  8. <Lyric>E:\KuGou\Lyric\周杰伦 - 爱在西元前-0589341ba15528a4c63e36c49a3c0e45.krc</Lyric>
  9. <Bitrate>192004</Bitrate>
  10. <MandatoryBitrate>0</MandatoryBitrate>
  11. </File>
Java Code after modify:
  1. public void output(String filePath) throws FileNotFoundException{
  2. Scanner scanner=new Scanner(new File(filePath),"UTF-8");//Always explicitly pass a charset when working with text
  3. String str=null;
  4. while(scanner.hasNextLine()){
  5. str=scanner.nextLine();
  6. if(str.indexOf("FileName")>0)
  7. System.out.println(str.substring(str.indexOf(">")+1, str.lastIndexOf("<")));
  8. }
  9. //It's better to check IOException when working with Scanner(PS:find UnmappableCharacterException took me more time,finally by debug to found )
  10. IOException ioException = scanner.ioException();
  11. if (ioException != null) {
  12. ioException.printStackTrace();
  13. }
  14. scanner.close();
  15. }

转载于:https://www.cnblogs.com/yxysuanfa/p/6830986.html

Scanner遇上UnmappableCharacterException相关推荐

  1. 推荐系统遇上深度学习,9篇阿里推荐论文汇总!

    作者 | 石晓文 转载自小小挖掘机(ID: wAIsjwj) 业界常用的推荐系统主要分为两个阶段,召回阶段和精排阶段,当然有时候在最后还会接一些打散或者探索的规则,这点咱们就不考虑了. 前面九篇文章中 ...

  2. 华为平板电脑_当5G遇上平板电脑,华为MatePad Pro 5G带来了什么?

    5G已经来临,科技产品向5G升级已是大势所趋,这更是检验实力的探索之路. 2月24日,华为在巴塞罗那在线发布了一系列新品,其中,华为面向全球推出的5G高端旗舰平板,同时也是全球首款公开发布的5G平板华 ...

  3. 404未找到是什么意思_为什么老遇上404 not found?你懂的

    文章转载自公众号:一只学霸(bajie203) 昨天晚上 大毛火急火燎地打开了电脑 戴上了耳机 不到两分钟 -- 我们往前一凑 登等 果然是大家最害怕的一幕出现了 学霸在网上冲浪多年 留下的都是美好的 ...

  4. 《当用户体验设计遇上敏捷》一3.5 小结

    本节书摘来自异步社区<当用户体验设计遇上敏捷>一书中的第3章,第3.5节,作者[英]Lindsay Ratcliffe , Marc McNeill,更多章节内容可以访问云栖社区" ...

  5. 当网络安全遇上大数据分析(9)

    2012年3月份,Gartner发表过一篇报告--Information Security Is Becoming a Big Data Analytics Problem .里面主要就讲到了针对大规 ...

  6. html实体编码遇上js代码

    单双引号 在js代码中 在js中单.双引号引起来的是字符串,如果我们要在字符串中使用单.双引号,需要反斜杠进行转义 let str='user\'s name'; // or let str=&quo ...

  7. SQL SERVER 2008 R2 SP1更新时,遇上共享功能更新失败解决方案

    SQL SERVER 2008 R2 SP1更新时,遇上共享功能更新失败的问题,可作如下尝试: 更新失败后,在windows的[事件查看器→应用程序]中找到来源为MsiInstaller,事件ID为1 ...

  8. 当微信小程序遇上TensorFlow:Server端实现补充

    在前面一篇文章<当微信小程序遇上TensorFlow:Server端实现>中,我们探讨了微信小程序server端的实现.今天在调试微信小程序时才发现一个问题,那就是:微信小程序要求HTTP ...

  9. 当深度学习遇上异构并行计算

    当深度学习遇上异构并行计算 近几年来,以深度神经网络(DNN)为代表的深度学习如火如荼,深度学习的研究领域从开始的图像识别(如imagenet比赛)到现在的自然语言处理,几乎有席卷一切机器学习研究领域 ...

最新文章

  1. 讨厌php机试_[转载]PHP上机面试题
  2. windows从cmd中键入命令的一些常用小工具
  3. 单片机模块学习之LED
  4. git rebase/reset小计
  5. unity5.x C# 获取屏幕宽度 设置不受重力影响
  6. c语言实现NRZ编码,CSC1001-课后笔记
  7. 1分钟看懂:java 项目中 VO 、DTO、Entity,各自是在什么情况下应用的
  8. 朋友写的一个中国象棋游戏,JAVA代码
  9. Python基础学习8 函数
  10. linux充当防火墙,Linux下主机充当防火墙的巧妙应用之iptables
  11. 在线文本转2-36任意进制工具
  12. Windows核心编程_修改其它进程里的内存值+示例:修改游戏分数
  13. 190704每日一句
  14. python网络爬虫框架内容_Python网络爬虫-Scrapy框架
  15. 传统Tier1“大象转身”:不够快?你永远没有机会
  16. 暴多的教学视频,想要的就快下!
  17. 初级入门——认识Python语言
  18. 我们已将Boost Note带到下一个高度。你体验了吗?
  19. UMP系统功能 分库分表
  20. 出门不求人,自驾游必备的八款实用App推荐

热门文章

  1. 封神英雄榜java_封神英雄榜云霄仙子
  2. Jsoup爬取同花顺龙虎榜
  3. Unity UGUI 之 实现 Text 文本文字过长,省略号显示(TextMeshPro 和常规 Text 二种方法)
  4. 视频下载工具 lux
  5. HLS + ffmpeg 实现动态码流视频服务
  6. 离线安装enhance class decompiler
  7. 21点小游戏java编程_用Java编写一个二十一点小游戏
  8. WinKawaks如何载入游戏
  9. 关于Android Q的命名的猜想
  10. C++程序中执行abort等操作导致没有生成dump文件的问题案例分析