2016-07-20 17 views
-2

我有一个文本文件“的test.txt”具有以下内容的文本文件的第一行如何使行使用Java

******************** 
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的,但我无法使移动线到第一个地方。

+0

你尝试过什么你能缩小你的问题吗?你需要很多代码。 –

+0

我试图理解你的问题......但我不知道你在说什么...... – mob41

+0

哦,我明白了......但至少你有没有试过?显示你的代码。 – mob41

回答

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

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

这是一个可能的解决方案,但我想下面提到的跳过写这行特别容易得多。 谢谢你的帮助Johnrao07 :) –