如何使用Java将行作为TEXT文件中的第一行

时间:2016-07-20 11:09:02

标签: java text line

我有一个带有以下内容的文本文件“test.txt”

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

我的要求是制作第4行 - 我今天加入了Stackoverflow。作为test.txt中的第一行,以便文件内容如下:

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

这可以通过代码来完成,因为我正在尝试使用各种Java Utils,但我无法将该行移到第一位。

2 个答案:

答案 0 :(得分:1)

可能不是最好的方式,但有效!

首先删除

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(); 

然后将其附加到文件的开头

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

答案 1 :(得分:0)

正在使用的输入文件具有重复记录 细节: AA BB AA GG BB BB

要删除重复项,我使用以下代码

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();
}

根据需要输出

详情: AA GG BB