从文件流中删除数据

时间:2017-05-22 07:22:31

标签: java file

我有以下情况:我想加载文件的内容,删除一些信息(例如特定的字节序列)并将修改后的内容存储回文件。
是否有一种用于此目的的读写流,或者我只能通过使用InputStream / OutputStream配对来实现它?

2 个答案:

答案 0 :(得分:0)

抱歉!您可以自行查看java.iohere的文档,但我不认为有任何类型的读/写流。

答案 1 :(得分:0)

Afaik没有"一个"可用于读取写入的流。你必须使用两个流。 Java 8 API在这里对我们有所帮助。

请参阅以下代码段作为示例(其中显示了实现读取/操作/写入文件内容的多种方法之一)。

    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;

      public class Main {

        public static void main(String[] args) throws IOException {
            final Path filePath = Paths.get("D:/test.txt");
            final String sequenceToRemove = "foobar";

            /*
             * Read content from file
             */
            final String content = new String(Files.readAllBytes(filePath));

            /*
             * Remove content partially
             */
            final String modifiedContent = content.replace(sequenceToRemove, "");

            /*
             * Write modified content to file
             */
            try (BufferedWriter writer = Files.newBufferedWriter(filePath)) {
                writer.write(modifiedContent);
            }
        }
    }