web-dev-qa-db-fra.com

Java. Comment ajouter du texte en haut de file.txt

J'ai besoin d'ajouter du texte au début du fichier texte via Java.

Par exemple, j'ai un fichier test.txt avec des données:

Peter
John
Alice

Je dois ajouter (en haut du fichier):

Jennifer 

Ça devrait être:

Jennifer
Peter
John
Alice

J'ai une partie du code, mais il ajoute des données à la fin du fichier, je dois lui faire ajouter du texte en haut du fichier:

    public static void irasymas(String irasymai){
        try {
         File file = new File("src/lt/test.txt");

                if (!file.exists()) {
                file.createNewFile();
            }

            FileWriter fw = new FileWriter(file.getAbsoluteFile(), true);
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(irasymai+ "\r\n");
            bw.close();
} 
       catch (IOException e) {
        e.printStackTrace();                
        }
    }

J'ai essayé cela, mais cela supprime uniquement toutes les données du fichier et n'insère aucun texte:

public static void main(String[] args) throws IOException {
        BufferedReader reader = null;
        BufferedWriter writer = null;
        ArrayList list = new ArrayList();

        try {
            reader = new BufferedReader(new FileReader("src/lt/test.txt"));
            String tmp;
            while ((tmp = reader.readLine()) != null)
                list.add(tmp);
            OUtil.closeReader(reader);

            list.add(0, "Start Text");
            list.add("End Text");

            writer = new BufferedWriter(new FileWriter("src/lt/test.txt"));
            for (int i = 0; i < list.size(); i++)
                writer.write(list.get(i) + "\r\n");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            OUtil.closeReader(reader);
            OUtil.closeWriter(writer);
        }
    }

Merci pour l'aide.

24
user1816133
File mFile = new File("src/lt/test.txt");
FileInputStream fis = new FileInputStream(mFile);
BufferedReader br = new BufferedReader(fis);
String result = "";
String line = "";
while( (line = br.readLine()) != null){
 result = result + line; 
}

result = "Jennifer" + result;

mFile.delete();
FileOutputStream fos = new FileOutputStream(mFile);
fos.write(result.getBytes());
fos.flush();

L'idée est de tout lire, ajoutez la chaîne à l'avant. Supprimer l'ancien fichier. Créez le nouveau fichier avec eited String.

5
Jeff Lee