Java Stream Manipulations



我正在修改一些现有的java代码,目前使用以下过程:

  1. 打开FileInputStream从磁盘读取文件。
  2. 将FileInputStream传递到DataInputStream的构造函数
  3. 从DataInputStream读取数据到字节数组
  4. 创建Apache Commons ByteArrayPartSource基于字节数组
  5. 创建一个基于ByteArrayPartSource的Apache Commons FilePart。
  6. 基于FilePart创建Apache Commons MultipartRequestEntity。
  7. 调用需要MultipartRequestEntity作为参数的外部API。

我试图通过添加代码来扫描输入文件和搜索/替换文本字符串来修改此过程。例如,它可能会扫描文件中的模式'abc'并将其替换为'xyz'。但是,我不确定应该将此修改添加到哪一步。我选择哪一步对性能有影响吗?是否有可能在内存中进行搜索/替换而不将输入文件写入临时区域?

谢谢。

如果您正在阅读的文件是文本文件,您可以:

  • 使用接受字节数组的字符串构造函数将从步骤3获得的字节数组转换为字符串
  • 执行搜索&使用replacereplaceAll方法替换所述字符串上的操作(需要一些正则表达式知识)
  • 使用getBytes方法将结果转换回字节数组
  • 从步骤4恢复处理

强烈建议您在字符串构造函数和getBytes方法中指定文件编码,以避免难以调试的编码问题。

…如果文件是二进制的…我想不出一个方法来搜索和替换里面的文本,抱歉

相关内容

  • 没有找到相关文章

最新更新