`
yonlist
  • 浏览: 85641 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java 过滤文件的BOM头

 
阅读更多

最近项目碰到一个小问题,配置文件如果用记事本改过,会因为解析错误导致启动失败。

 

分析后发现,文件开头加上了3个隐藏字节,用UE的16进制模式可以看到开头有EF BB BF这3个字节,这个就是“BOM”头。

 

解决方案:

http://koti.mbnet.fi/akini/java/unicodereader/UnicodeReader.java.txt

 

 

调用代码:

原先是

BufferedReader reader = new BufferedReader(new InputStreamReader(in));

 

现在改为

BufferedReader reader = new BufferedReader(new UnicodeReader(in, null));

 

测试OK~

分享到:
评论

相关推荐

    java去掉txt文本的bom头信息

    总结,处理TXT文本文件的BOM头信息是Java开发中的常见任务,通过理解BOM的含义和字节流、字符流的工作原理,我们可以有效地实现去除BOM头的功能。在实际应用中,根据文件大小和性能需求选择合适的方法,确保代码既...

    Java解决UTF-8的BOM问题

    `UnicodeInputStream`是一个过滤输入流,它的主要任务是检测并移除文件头中的BOM标志。`UnicodeReader`则是在`BufferedReader`基础上扩展的,用于处理不同类型的Unicode编码,包括那些带有BOM的编码。 在`...

    BOM数据处理源码.rar

    可能包含的操作有文件I/O操作,数据结构的使用,如数组、列表或集合,以及可能的算法应用,如排序、过滤或统计计算。 根据【压缩包子文件的文件名称列表】"RS&BOM&BOM",我们可以猜测源码中可能有与BOM相关的类或...

    java面试复习大纲

    2. Tomcat服务器:熟悉Tomcat目录结构和配置文件,了解其加载过程及可能遇到的启动问题。 3. JDBC:掌握JDBC的编程步骤和与ORM框架(如Hibernate和MyBatis)的区别。 4. Servlet:了解Servlet的生命周期、线程安全...

    批量修改文件编码软件

    这一步骤可能涉及到设置文件过滤条件,例如只修改.txt或.java文件。一旦找到目标文件,用户只需点击“一键修改”,软件便会自动将这些文件的编码格式转换为预设的目标编码,如UTF-8无BOM格式。 批量修改过程中,...

    Commons-io-2.11.0.jar

    Apache Commons IO是Apache软件基金会的一个开源项目,它提供了一组用于处理输入/输出操作的Java工具类,旨在简化文件操作、流处理和其他与I/O相关的任务。commons-io-2.11.0.jar是这个项目在版本2.11.0时的jar文件...

    帮助文档(java,javascript,css)

    开发者可以在这个文件中找到所有Java 1.8类库的详细说明,包括类、接口、方法和构造函数等,这对于学习和理解Java 1.8的新特性和使用标准库非常重要。 - Lambda表达式:Java 8引入的关键特性之一,允许以更简洁的...

    Java学习资料

    这些文件涵盖了Java学习的多个重要方面,从基础到高级,包括了Unix基础知识、核心Java、Web开发中的Struts2框架、字符编码问题、JavaScript、Servlet、JSP以及EJB等企业级应用。以下是对这些知识点的详细解释: 1. ...

    commons-io-2.8.0-bin.tar.gz

    - 文件过滤器:可以基于不同的条件(如文件大小、类型等)过滤文件。 - 文件观察:支持监听文件系统事件,如文件创建、修改或删除。 - 部分读取和写入:允许只读取或写入文件的一部分,而无需加载整个文件到内存...

    commons-io2.6.jar

    1. **Jar 文件**:Java Archive(JAR)文件格式是 Java 平台上的标准归档格式,用于封装多个 Java 类文件、资源文件和元数据。JAR 文件可以作为一个单元分发,便于代码的组织和部署。在 "commons-io2.6.jar" 中,...

    java 逐行读取txt文本如何解决中文乱码

    - 如果TXT文件中包含BOM(Byte Order Mark),可能需要使用`InputStreamReader`的特定构造函数去除BOM。 通过以上步骤,你应该能够成功地使用Java读取并处理包含中文字符的TXT文件,避免出现乱码问题。在实际开发...

    commons-io-2.0

    7. **ByteOrderMark**: 支持检测和处理字节顺序标记(BOM),这对于处理UTF-8等带有BOM的编码文件特别有用。 8. **LineIterator**: 这是一个迭代器,可以方便地逐行读取文件,同时提供了一种安全的关闭资源的方式,...

    引用国际化资源乱码--properties edit

    在开发Java Web应用程序时,尤其是使用Struts2框架时,我们常常会遇到国际化资源文件(如.properties)在JSP页面中显示乱码的问题。这通常是由于编码不一致、字符集设置错误或者处理方式不当导致的。本文将深入探讨...

    根据数据库表结构自动生成产品结构树

    将结构树数据导出成Excel,可以利用Excel的表格功能进行排序、过滤和分析,或者与现有的Excel BOM模板进行比较和更新。 综上所述,这个功能涵盖了数据库查询技术、数据结构(如树)、递归算法、文件导入导出以及...

    commons-io-2.4

    8. **DirectoryWalker**: 实现了递归遍历目录的功能,可以根据需要过滤和处理文件。 9. **StreamUtils**: 提供了与Java 8 Stream API的桥接方法,使得在老版本Java中也能方便地使用流操作。 在"commons-io-2.4"这...

    Java面试重要知识点复习大纲.pdf

    2. **Tomcat**:理解其目录结构和配置文件,探讨Tomcat的启动原理。 3. **JDBC**:熟悉JDBC的步骤,对比Hibernate和MyBatis的优缺点。 4. **Servlet**:理解生命周期,讨论线程安全问题,了解请求和响应对象的使用。...

    commons-io-2.8.0-bin.zip

    8. **ByteOrderMark**: 处理字节顺序标记(BOM),在处理UTF-8、UTF-16等编码的文件时,能够识别并处理BOM。 9. **TeeOutputStream**: 实现了输出流的分支,使得数据可以同时写入多个目的地,这在需要记录日志或...

    Java面试重要知识点复习大纲.docx

    1. **Struts2**:理解Action的编写,知道如何接受请求参数,了解配置文件的设置,理解Struts2与SpringMVC的差异,了解拦截器与过滤器的区别。 2. **Hibernate**:理解ORM思想,知道实体对象的状态转换,熟练使用HQL...

    最新Spring Cloud Gateway 官方参考指南-中文版-3.x

    配置路由、谓词和过滤器可以通过YAML或properties文件进行,有两种方式:简写和完全展开。简写方式直接使用过滤器名称和参数值,而完全展开方式则更详细,包含名称/值对,通常用于更复杂的配置。 在配置路由断言...

    maven Springmvc 4.16 环境搭建

    Spring MVC的依赖可以通过Spring Framework的BOM(Bill of Materials)来管理。在pom.xml文件中,添加以下代码: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-dependencies ...

Global site tag (gtag.js) - Google Analytics