有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java流操作

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

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

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

谢谢


共 (1) 个答案

  1. # 1 楼答案

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

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

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

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