1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android音乐播放器读取歌词.lrc文件乱码问题解决方法

Android音乐播放器读取歌词.lrc文件乱码问题解决方法

时间:2019-11-15 12:02:04

相关推荐

Android音乐播放器读取歌词.lrc文件乱码问题解决方法

最近在做Android音乐播放器,在读取本地歌词的时候,老是乱码,使我很郁闷:今天在网上看到一个文件转码的文章,彻底解决了我的乱码问题,这样我就不用自己去手动的转码lrc歌词文件你的编码了,现在与大家分享一下这一文章:

[java]view plaincopypackagecom.qgmobile.utils; importjava.io.BufferedInputStream; importjava.io.BufferedReader; importjava.io.File; importjava.io.FileInputStream; importjava.io.IOException; importjava.io.InputStreamReader; /** *转换文件的编码格式 *@authoryangchuxi * */ publicclassConvertFileCode{ publicStringconverfile(Stringfilepath){ System.out.println("ConvertFileCode--------->"+filepath); Filefile=newFile(filepath); FileInputStreamfis=null; BufferedInputStreambis=null; BufferedReaderreader=null; Stringtext=""; try{ fis=newFileInputStream(file); bis=newBufferedInputStream(fis); bis.mark(4); byte[]first3bytes=newbyte[3]; //System.out.println(""); //找到文档的前三个字节并自动判断文档类型。 bis.read(first3bytes); bis.reset(); if(first3bytes[0]==(byte)0xEF&&first3bytes[1]==(byte)0xBB &&first3bytes[2]==(byte)0xBF){//utf-8 reader=newBufferedReader(newInputStreamReader(bis,"utf-8")); }elseif(first3bytes[0]==(byte)0xFF &&first3bytes[1]==(byte)0xFE){ reader=newBufferedReader( newInputStreamReader(bis,"unicode")); }elseif(first3bytes[0]==(byte)0xFE &&first3bytes[1]==(byte)0xFF){ reader=newBufferedReader(newInputStreamReader(bis, "utf-16be")); }elseif(first3bytes[0]==(byte)0xFF &&first3bytes[1]==(byte)0xFF){ reader=newBufferedReader(newInputStreamReader(bis, "utf-16le")); }else{ reader=newBufferedReader(newInputStreamReader(bis,"GBK")); } Stringstr=reader.readLine(); while(str!=null){ text=text+str+"/n"; str=reader.readLine(); } System.out.println("text"+text); }catch(Exceptione){ e.printStackTrace(); }finally{ if(fis!=null){ try{ fis.close(); }catch(IOExceptione){ e.printStackTrace(); } } if(bis!=null){ try{ bis.close(); }catch(IOExceptione){ e.printStackTrace(); } } } returntext; } }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。