将字符串复制到Java中的文件的开头

Num*_*tor 1 java file

我想在文件的开头写一个字符串,我该怎么做?

我根本不知道如何添加字符串..这是我到目前为止所做的:

  public static void prepend (String filename, String data) throws IOException{

    FileOutputStream file= new FileOutputStream(filename);

}
Run Code Online (Sandbox Code Playgroud)

(i)该write()方法只接受字节 - 在我的情况下,我应该怎么做才能使用它?

(ii) - 如何将字符串复制到文件的开头?

而且 - 如果有人知道一个网站上有所有的作家\读者和所有这些流被安排和很好地解释 - 我会非常感激,我会失去理智.

谢谢!

小智 8

你可以使用RandomAccessFile类.

http://download.oracle.com/javase/6/docs/api/java/io/RandomAccessFile.html

public static void main(String[] args) throws Exception {
    RandomAccessFile file = new RandomAccessFile("test.txt", "rws");
    byte[] text = new byte[(int) file.length()];
    file.readFully(text);
    file.seek(0);
    file.writeBytes("Prepend 8");
    file.write(text);
    file.close();
    System.out.println("Done");
}
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 6

要编写文本,您需要创建一个Writer- 例如OutputStreamWriter.您可以使用FileWriter,而不是,但我更喜欢裹FileOutputStreamOutputStreamWriter为这样我可以控制编码.

你不能真正预先添加到文件的开头 - 你必须将新文本写入新文件的开头,然后复制旧文件的内容,然后在必要时重命名文件.具体如何操作将取决于现有文件的内容.