小说软件开发,java获取文本文件的编码格式
小说软件开发,java获取文本文件的编码格式实现的相关代码
1 | /**<br> * 获取文件的编码格式<br> * @param file<br> * @return<br> */ <br> public String GetCharset(File file) {<br> String charset = "GBK" ;<br> byte [] first3Bytes = new byte [ 3 ];<br> try {<br> boolean checked = false ;<br> //BufferedInputStream bis = new BufferedInputStream(<br> //new FileInputStream(file));<br> //bis.mark(0);<br> //int read = bis.read(first3Bytes, 0, 3);<br> InputStream is = new FileInputStream(file);<br> int read = is.read(first3Bytes, 0, 3);<br> <br> if (read == -1)<br> return charset;<br> //Log.i(TAG,"[GetCharset]first3Bytes[0]:"+first3Bytes[0]+", first3Bytes[1]:"+first3Bytes[1]+",first3Bytes[2]:"+first3Bytes[2]);<br> if (first3Bytes[0] == (byte) 0xFF && first3Bytes[1] == (byte) 0xFE) {<br> charset = "UTF-16LE";<br> checked = true;<br> } else if (first3Bytes[0] == (byte) 0xFE<br> && first3Bytes[1] == (byte) 0xFF) {<br> charset = "UTF-16BE";<br> checked = true;<br> } else if (first3Bytes[0] == (byte) 0xEF<br> && first3Bytes[1] == (byte) 0xBB<br> && first3Bytes[2] == (byte) 0xBF) {<br> charset = "UTF-8";<br> checked = true;<br> }else if (first3Bytes[0] == (byte) 0xA<br> && first3Bytes[1] == (byte) 0x5B<br> && first3Bytes[2] == (byte) 0x30) {<br> charset = "UTF-8";<br> checked = true;<br> }else if (first3Bytes[0] == (byte) 0xD<br> && first3Bytes[1] == (byte) 0xA<br> && first3Bytes[2] == (byte) 0x5B) {<br> charset = "GBK";<br> checked = true;<br> }else if (first3Bytes[0] == (byte) 0x5B<br> && first3Bytes[1] == (byte) 0x54<br> && first3Bytes[2] == (byte) 0x49) {<br> charset = "windows-1251";<br> checked = true;<br> }<br> //bis.reset();<br> InputStream istmp = new FileInputStream(file);<br> if (!checked) {<br> int loc = 0;<br> while ((read = istmp.read()) != -1) {<br> loc++;<br> if (read >= 0xF0)<br> break;<br> if (0x80 <= read && read <= 0xBF)<br> break;<br> if (0xC0 <= read && read <= 0xDF) {<br> read = istmp.read();<br> if (0x80 <= read && read <= 0xBF)<br> continue;<br> else<br> break;<br> } else if (0xE0 <= read && read <= 0xEF) {<br> read = istmp.read();<br> if (0x80 <= read && read <= 0xBF) {<br> read = istmp.read();<br> if (0x80 <= read && read <= 0xBF) {<br> charset = "UTF-8";<br> break;<br> } else<br> break;<br> } else<br> break;<br> }<br> }<br> }<br> is.close();<br> istmp.close();<br> } catch (Exception e) {<br> e.printStackTrace();<br> }<br> return charset;<br> } |
以上就是 小说软件开发,java获取文本文件的编码格式实现的相关代码,更多内容欢迎关注之后的文章
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 历时 8 年,我冲上开源榜前 8 了!
· 物流快递公司核心技术能力-海量大数据处理技术
· 四大AI编程工具组合测评
· 关于能否用DeepSeek做危险的事情,DeepSeek本身给出了答案
· 如何在 Github 上获得 1000 star?