记录下关于在Java代码中读取txt文档(带BOM的UTF-8编码格式),如何去除隐藏的字符串

为什么编码格式为带BOM的UTF-8在读取的时候会多出几个字符还不显示,这个原因看我上一篇文章,接下来说下解决方式
首先需要去判断下txt的编码格式
这里的unicode指的就是带BOM的UTF-8格式,这块应该是叫做unicode,如果不对麻烦指出来

// 判断编码格式
            final InputStream inputStream = new FileInputStream( localFileString );
            String code = "";
            final byte[] head = new byte[ 3 ];
            inputStream.read( head );
            if ( head[ 0 ] == -17 && head[ 1 ] == -69 && head[ 2 ] == -65 )
            {
               code = "Unicode";
            }
            else if ( head[ 0 ] == -2 && head[ 1 ] == -1 )
            {
               code = "UTF-8";
            }

我们在判断出编码格式后,就能在编码格式为带BOM的utf-8条件中处理一些逻辑,因为他只有第一行才会多出三个字符,所以我们只需要在第一行去掉三个字符就可以,其他行读出的都正常。如下,

while ( ( data = br.readLine() ) != null )
            {
               count++;

               if ( count == 1 && code.equals( "Unicode" ) )
               {
                  byte[] bytes = data.getBytes();
                  data = new String( bytes, 3, bytes.length - 3 );
               }
             }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值