Java中用于在文件中间写入的最佳方式

时间:2012-12-11 13:08:20

标签: java io postscript

  

可能重复:
  Best Way to Write Bytes in the Middle of a File in Java

我正在编写一个程序来修改PostScript文件以添加打印属性,因此我需要在文件中间添加行。这些PostScript文件非常大,我想知道我使用的代码是否最有效。此代码读取源文件并写入临时文件,在需要的位置添加一行。

    Writer out = null;
    Scanner scanner = null;

    String newLine = System.getProperty("line.separator");

    scanner = new Scanner(new FileInputStream(fileToRead));
    out = new OutputStreamWriter(new FileOutputStream(fileToWrite));
    String line;
    while(scanner.hasNextLine()){
        line = scanner.nextLine();

        out.write(line);
        out.write(newLine);
        if(line.equals("%%BeginSetup")){
            out.write("<< /Duplex true /Tumble true >> setpagedevice");
            out.write(newLine);
        }
    }

    scanner.close();
    out.close();

任何帮助将不胜感激,提前谢谢。

2 个答案:

答案 0 :(得分:1)

在SO上找到的大多数旧答案使用/链接旧的java.io.*

Oracle有很好的例子,说明如何使用“新的”java 7 java.nio.*软件包(通常具有更好的性能)

http://docs.oracle.com/javase/tutorial/essential/io/rafs.html

答案 1 :(得分:0)

请参阅RandomAccessFile及其示例:Fileseek - 您可以在文件中寻找特定位置并在那里写信。