小说软件开发,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获取文本文件的编码格式实现的相关代码,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现