MalformedInputException 与 Files.readAllLines()

2024-02-17

我正在迭代一些文件,准确地说是 5328 个文件。这些文件是平均 XML 文件,最多 60-200 行。它们首先通过简单的方法进行过滤isXml源文件解析路径。

    Files.walk(Paths.get("/home/me/development/projects/myproject"), FileVisitOption.FOLLOW_LINKS)
            .filter(V3TestsGenerator::isXmlTestSourceFile)
            .filter(V3TestsGenerator::fileContainsXmlTag)

最大的问题是第二个过滤器,尤其是 fileContainsXmlTag 方法。对于每个文件,我想检测其行中是否至少包含一次模式:

private static boolean fileContainsXmlTag(Path path) {
    try {
        return Files.readAllLines(path).stream().anyMatch(line -> PATTERN.matcher(line).find());
    } catch (IOException e) {
        e.printStackTrace();
    }
    return false;
}

对于某些文件我得到这个异常

java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:281)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.readLine(BufferedReader.java:324)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at java.nio.file.Files.readAllLines(Files.java:3205)
at java.nio.file.Files.readAllLines(Files.java:3242)

但是当我使用 FileUtiles.readLines() 而不是 Files.readAllLines 时,一切都变得很好。

这是一个好奇心问题,所以如果有人能提供有关正在发生的事情的线索,我们会很高兴。

Thanks


方法Files.readAllLines() http://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#readAllLines-java.nio.file.Path-假设您正在读取的文件采用 UTF-8 编码。

如果出现此异常,则您正在读取的文件很可能使用与 UTF-8 不同的字符编码进行编码。

找出使用的字符编码,然后使用其他的readAllLines http://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#readAllLines-java.nio.file.Path-java.nio.charset.Charset-方法,允许您指定字符编码。

例如,如果文件采用 ISO-8859-1 编码:

return Files.readAllLines(path, StandardCharsets.ISO_8859_1).stream()... // etc.

方法FileUtiles.readLines()(它从哪里来?)可能会假设其他内容(它可能假设文件采用系统的默认字符编码,而不是 UTF-8)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MalformedInputException 与 Files.readAllLines() 的相关文章

  • 如何在java中将数组值排序为循环格式?

    我的数组值如下 String value 1 2 3 4 5 6 7 8 9 10 假设如果我将值 5 传递给 tat 数组 它应该按如下顺序排序 5 6 7 8 9 10 1 2 3 4 怎么办 有人帮忙吗 感谢你 你需要的就是所谓的轮换
  • 垃圾收集器如何在幕后工作来收集死对象?

    我正在阅读有关垃圾收集的内容 众所周知 垃圾收集会收集死亡对象并回收内存 我的问题是 Collector 如何知道任何对象已死亡 它使用什么数据结构来跟踪活动对象 我正在研究这个问题 我发现GC实际上会跟踪活动对象 并标记它们 每个未标记的
  • eclipse行号状态行贡献项是如何实现的?

    我需要更新状态行编辑器特定的信息 我已经有了自己的实现 但我想看看 eclipse 贡献项是如何实现的 它显示状态行中的行号 列位置 谁能指点一下 哪里可以找到源代码 提前致谢 亚历克斯 G 我一直在研究它 它非常复杂 我不确定我是否了解完
  • Java 的支持向量机?

    我想用Java编写一个 智能监视器 它可以随时发出警报detects即将到来的性能问题 我的 Java 应用程序正在以结构化格式将数据写入日志文件
  • 是否可以只迭代一个流一次并执行 2 个或更多操作?

    给定代码 List
  • Java 中如何将 char 转换为 int? [复制]

    这个问题在这里已经有答案了 我是Java编程新手 我有例如 char x 9 我需要得到撇号中的数字 即数字 9 本身 我尝试执行以下操作 char x 9 int y int x 但没有成功 那么我应该怎么做才能得到撇号中的数字呢 ASC
  • 如何在java中将日期格式从YYMMDD更改为YYYY-MM-DD? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我从机器可读代码中获取日期格式为 YYMMDD 如何将其更改为 YYYY MM DD 例如我收到 871223 YYMMDD 我想把它改成
  • Java Applet 中的 Apache FOP - 未找到数据的 ImagePreloader

    我正在研究成熟商业产品中的一个问题 简而言之 我们使用 Apache POI 库的一部分来读取 Word DOC 或 DOCX 文件 并将其转换为 XSL FO 以便我们可以进行标记替换 然后 我们使用嵌入到 Java 程序中的 FOP 将
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • Akka 与现有 java 项目集成的示例

    如果我已经有现有的javaWeb 应用程序使用spring and servlet容器 将 Akka 集成到其中的正确方法是什么 就像我将会有Actor1 and Actor2互相沟通的 开始使用这些演员的切入点是什么 例如 1 把它放在那
  • 提高 PostgreSQL 1 亿数据左连接查询性能

    我在用Postgresql 9 2 version Windows 7 64 bit RAM 6GB 这是一个Java企业项目 我必须在我的页面中显示订单相关信息 有三个表通过左连接连接在一起 Tables TV HD 389772 行 T
  • Java继承,扩展类如何影响实际类

    我正在查看 Sun 认证学习指南 其中有一段描述了最终修饰符 它说 如果程序员可以自由地扩展我们所知的 String 类文明 它可能会崩溃 他什么意思 如果可以扩展 String 类 我是否不会有一个名为 MyString 的类继承所有 S
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • JDBC 时间戳和日期 GMT 问题

    我有一个 JDBC 日期列 如果我使用 getDate 则会得到 date 仅部分2009 年 10 月 2 日但如果我使用 getTimestamp 我会得到完整的 date 2009 年 10 月 2 日 13 56 78 890 这正
  • 部署 .war 时出现 Glassfish 服务器错误:部署期间发生错误:准备应用程序时出现异常:资源无效

    我正在使用以下内容 NetBeans IDE 7 3 内部版本 201306052037 爪哇 1 7 0 17 Java HotSpot TM 64 位服务器虚拟机 23 7 b01 NetBeans 集成 GlassFish Serve
  • 手动设置Android Studio的JDK路径

    如何为 Android Studio 使用自定义 JDK 路径 我不想弄乱 PATH 因为我没有管理员权限 是否有某个配置设置文件允许我进行设置 如果您查看项目设置 您可以从那里访问 jdk 在标准 Windows 键盘映射上 您可以在项目
  • 列表过滤器内的 Java 8 lambda 列表

    示例 JSON id 1 products id 333 status Active id 222 status Inactive id 111 status Active id 2 products id 6 status Active
  • java XMLSerializer 避免复杂的空元素

    我有这个代码 DocumentBuilderFactory factory DocumentBuilderFactory newInstance DocumentBuilder builder factory newDocumentBuil
  • Log4j2 ThreadContext 映射不适用于parallelStream()

    我有以下示例代码 public class Test static System setProperty isThreadContextMapInheritable true private static final Logger LOGG

随机推荐

  • AngularJS 在 HTML 中留下注释:是否可以删除它们?

    有谁知道是否可以删除 html 代码中留下的角度注释 例如 如果我使用 ngRepeat 并且没有可重复的项目 AngularJS 会留下以下内容 此评论的结果是element嵌入执行者ngRepeat 看起来好像是一直在发生 https
  • 默认共享首选项使用的文件名是什么?

    安卓备份服务requires http developer android com guide topics data backup html SharedPreferences用于备份共享首选项的文件名 public static fin
  • 如何在数据框列表上使用 devtools::use_data?

    我有一系列数据框 我想将它们保存为包中的单独 rda 文件 我可以用devtools use data my df1 my df2 但我没有每个数据帧的命名对象 它们都存储在一个大列表中 我想要做的是为每个列表元素调用 use data 并
  • 如何从我的代码中删除重复项

    我有两个类似的方法 其中一个打印一些东西 其中一个保存一些东西 正如你所看到的 有很多重复的代码 我应该如何重构它并删除这种重复 public static void printSomething List
  • 在玩笑中模拟节点模块中的特定类

    我想嘲笑Socket类来自net节点模块 Docs https nodejs org api net html net class net socket 我有一堂课看起来像这样 import Socket from net class Fo
  • 在浏览器上通过php运行python脚本

    我有一个简单的 python 脚本 阿努巴哈 py usr bin env python coding UTF 8 enable debugging import cgitb import pandas cgitb enable print
  • 将新项目动态添加到 IQueryable 硬编码假存储库

    在使用真正的数据库之前构建应用程序 为了让事情正常工作 我可以首先使用硬编码列表作为假的内存存储库 public class FakeProductsRepository private static IQueryable
  • RecyclerView 项目不填充宽度

    我设计了一个带有地图片段和recyclerView的布局 每个recyclerView项目都是cardview 我已经指定给出xml布局 问题是 RecyclerView 项目不填充屏幕宽度 img here https i stack i
  • Scrapy图片下载如何使用自定义文件名

    For my scrapy http doc scrapy org index html我目前正在使用的项目图片管道 http doc scrapy org topics images html scrapy contrib pipelin
  • 防止小部件填充 Flutter 中扩展的祖先

    我如何保留一个RaisedButton从扩大到填补Expanded包含它 我想创建三列 其宽度与可用空间成比例 但我希望每列中的子项为其自然大小 而不消耗其父项的整个宽度Expanded Widget controls BuildConte
  • 如何将多部分表单数据从jsp发送到Web服务?

    我正在尝试为我的网站创建一个注册页面 当用户将数据提交到signup jsp时 我想使用 application x www form urlencoded 将此数据发送到我的Web服务 我怎样才能在JSP中做到这一点 尝试了以下代码 但这
  • 如何将字符串从函数传递到主函数?

    我尝试寻找解决方案 但未能找到 是否可以返回字符串 我想将一个字符串从下面的函数传递回 main 我想通过listofdeatils string 这是我的代码 include
  • 如何使用 Fetch 发布 x-www-form-urlencoded 请求?

    我有一些参数想要以表单编码的方式 POST 到我的服务器 userName email protected cdn cgi l email protection password Password grant type password 我
  • 如何链接winsock.lib?

    在我的 C 课程中 我使用套接字 我在链接时遇到一些错误 因为在我看来 库 Winsock lib 丢失了 我包括这些 ifdef WIN32 include
  • Pro JavaScript 程序员面试问题(含答案)[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 重定向到登录页面时正确的 HTTP 状态代码是什么?

    当用户未登录并尝试访问需要登录的页面时 重定向到登录页面的正确 HTTP 状态代码是什么 我问是因为没有一个W3C 规定的 3xx 响应代码 http www w3 org Protocols rfc2616 rfc2616 sec10 h
  • 插入表..在链接服务器上执行不起作用

    这有效 返回结果集 exec select col count 1 from test dbo Table1 with nolock at svrA 当我尝试将结果集插入表中时 insert into rowcount sub tablen
  • 如何在 IIS 7 中配置 Http 处理程序?

    这就是我想做的 我创建了一个类库项目 这有一个类实现 IHttpHandler 接口 让我们 将该类命名为 ZipHandler 让我们 假设命名空间是 Zip 我希望每当任何 Http 请求提供 zip 文件 我的 ZipHandler
  • PHP 有类似 ruby​​ gem 的打包器吗?

    我是 PHP 程序员 了解 Rails Ruby 宝石捆绑器 http gembundler com 非常好的安装依赖项的工具 php有类似的东西吗 也许某些php框架有这样的工具 关于gem捆绑器的说明 Bundler 在应用程序的整个生
  • MalformedInputException 与 Files.readAllLines()

    我正在迭代一些文件 准确地说是 5328 个文件 这些文件是平均 XML 文件 最多 60 200 行 它们首先通过简单的方法进行过滤isXml源文件解析路径 Files walk Paths get home me development