上周末的时候。朋友约好去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. }

最新文章

  1. sqlserver 连接mysql
  2. Nodejs:precss模块 &amp; autoprefixer模块
  3. Citrix 虚拟化笔记
  4. &amp;&amp;队友最近一周水水
  5. 浅谈K-SVD
  6. 3D语音天气球(源码分享)——创建可旋转的3D球
  7. MySQl的几个配置项
  8. C# String.Format
  9. SSMTP—让Linux系统从Office 365发送邮件
  10. android chrome 不支持 audio/video的autoplay 属性
  11. Mac下的eclipse 4.6的tomcat插件安装正确姿势
  12. light oj 1354 - IP Checking
  13. Android线程和handler
  14. Spring详解(五)------AspectJ 实现AOP
  15. java中的static关键字详解
  16. 如何处理Cookie存储和读取中文乱码问题
  17. Scala变量| 流程控制
  18. hbase启动后HMaster进程自动关闭
  19. ThinkPHP缓存技术(S(),F(),查询缓存,静态缓存)
  20. oracle 基本操作--事务

热门文章

  1. ZOJ 2112 Dynamic Rankings(带修改的区间第K大,分块+二分搜索+二分答案)
  2. https总结
  3. python3的cookielib
  4. pat 1074. 宇宙无敌加法器(20)
  5. 洛谷P1965 转圈游戏 [NOIP2013]
  6. input输入框与元素间有间隙
  7. AtCoder Regular Contest 090 F - Number of Digits
  8. Berkely DB Java Edition学习笔记
  9. Eclipse中的android项目前面有叹号 (转)
  10. Linux Shell 文本处理工具集锦【转】