2016-07-20 44 views
-2

Ich habe eine Textdatei „test.txt“ mit folgendem InhaltWie eine Zeile als die erste Zeile in einer Textdatei machen mit Hilfe von Java

******************** 
Hi 
This is ABC 
I learning JAVA and would like to expertize in it. 
I joined Stackoverflow today. 
******************** 

Meine Forderung ist die Zeile # 4 - I kam heute zu Stackoverflow. als die erste Zeile in test.txt, so dass der Inhalt der Datei ist wie folgt:

******************** 
I joined Stackoverflow today. 
Hi 
This is ABC 
I learning JAVA and would like to expertize in it. 
I joined Stackoverflow today. 
******************** 

kann dies über Code erfolgen, da ich verschiedene Java Utils zu verwenden, ich versuche, aber ich bin nicht in der Lage die Linie Schritt zu machen auf den ersten Platz.

+0

Haben Sie etwas versucht und kannst du deine Frage eingrenzen? Du verlangst eine Menge Code. –

+0

Ich habe versucht, deine Frage zu verstehen ... aber ich habe keine Ahnung, wovon du redest ... – mob41

+0

Oh, ich habe es ... aber hast du es wenigstens versucht? Zeige deinen Code. – mob41

Antwort

0

die Eingabedatei verwendet wird, hat Duplikate Aufzeichnungen DETAILS: aa bb aa gg bb bb

Duplikate zu entfernen, ich den folgenden Code verwende

File Readfile= new File(n.getProperty("file")); 
BufferedReader reader= new BufferedReader(new FileReader(Readfile)); 
Set<String> lines = new HashSet<String>(10000); 
String line; 
while((line=reader.readLine())!=null){ 
    lines.add(line); 
} 
reader.close(); 
File file =new File("stripduplicates.txt"); 

if(!file.exists()){ 
    file.createNewFile(); 
} 
BufferedWriter writer = new BufferedWriter(new FileWriter(file.getPath())); 
    //EDIT done 
    writer.write("DETAILS:"); 
for(String unique: lines){ 
    //EDIT done 
     if(!(unique.startsWith("DETAILS:")) 
     { 
     writer.write(unique); 
     writer.newLine(); 
     } 
} 
writer.close(); 
} 

Die Ausgabe nach Bedarf

DETAILS kommt: aa gg bb

1

Vielleicht nicht der beste Weg, aber funktioniert!

Erste Löschen Sie die Zeile

File inputFile = new File("test.txt"); 
File tempFile = new File("myTempFile.txt"); 

BufferedReader reader = new BufferedReader(new FileReader(inputFile)); 
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile)); 

String lineToRemove = "I joined Stackoverflow today."; 
String currentLine; 

while((currentLine = reader.readLine()) != null) { 
// trim newline when comparing with lineToRemove 
String trimmedLine = currentLine.trim(); 
if(trimmedLine.equals(lineToRemove)) continue; 
writer.write(currentLine + System.getProperty("line.separator")); 
} 
boolean successful = tempFile.renameTo(inputFile); 
writer.close(); 
reader.close(); 

es dann am Anfang der Datei anhängen

RandomAccessFile f = new RandomAccessFile(new File("yourtextfile.txt"), "rw"); 
f.seek(0); // to the beginning 
f.write(lineToRemove.getBytes()); 
f.close(); 
+0

Das ist eine mögliche Lösung, aber ich denke, das unten erwähnte Überspringen des Schreibens dieser bestimmten Zeile ist viel einfacher. Vielen Dank für Ihre Hilfe Johnrao07 :) –