我想從文本文件中刪除特定的行。我發現那條線,但接下來要做什麼? 有什麼想法?從流從Java文本文件中刪除特定行?
回答
讀取文件並將其寫入到另一個流並跳過要刪除
在一個文件中刪除文本行直接行是不可能的。我們必須將文件讀入內存,刪除文本行並重寫編輯的內容。
沒有魔術去除線條。
- 複製文件一行一行,沒有你不想要的行。
- 刪除原始文件。
- 將副本重命名爲原始文件。
我如何製作和重命名新文件?通過代碼PLease幫助 – user726701 2011-04-29 10:32:27
通過寫入一個不存在的文件來製作一個新文件。你可以添加一個像'.new'這樣的擴展名來創建一個新文件。你可以用'File.rename()'重命名它' – 2011-04-29 14:03:04
嘗試讀取文件:
public static String readAllText(String filename) throws Exception {
StringBuilder sb = new StringBuilder();
Files.lines(Paths.get(filename)).forEach(sb::append);
return sb.toString();
}
從特定的字符,然後拆分文本(新行的 「\ n」)
private String changeFile(){
String file = readAllText("file1.txt");
String[] arr = file.split("\n"); // every arr items is a line now.
StringBuilder sb = new StringBuilder();
for(String s : arr)
{
if(s.contains("characterfromlinewillbedeleted"))
continue;
sb.append(s); //If you want to split with new lines you can use sb.append(s + "\n");
}
return sb.toString(); //new file that does not contains that lines.
}
然後將此文件寫入的字符串與新的文件:
public static void writeAllText(String text, String fileout) {
try {
PrintWriter pw = new PrintWriter(fileout);
pw.print(text);
pw.close();
} catch (Exception e) {
//handle exception here
}
}
writeAllText(changeFile(),"newfilename.txt");
你應該在這裏改變「characterfromlinewillbedeleted」到你的行將被刪除。 – 2014-08-25 10:41:33
也許一個搜索方法會做你想做的事,即「search」遇到hod將一個字符串作爲參數並將其搜索到文件中,並替換包含該字符串的行。
PS:
public static void search (String s)
{
String buffer = "";
try {
Scanner scan = new Scanner (new File ("filename.txt"));
while (scan.hasNext())
{
buffer = scan.nextLine();
String [] splittedLine = buffer.split(" ");
if (splittedLine[0].equals(s))
{
buffer = "";
}
else
{
//print some message that tells you that the string not found
}
}
scan.close();
} catch (FileNotFoundException e) {
System.out.println("An error occured while searching in file!");
}
}
試試這個代碼。
- 1. 從Java中的文本文件中刪除特定行
- 2. 從文本文件中刪除包含特定文本的行
- 3. 從文件中刪除特定的行
- 4. 從文本文件中刪除特定行
- 5. 刪除從文本文件中的特定行
- 6. 使用sed從文本文件中刪除特定的行號?
- 7. 批處理腳本 - 刪除從文本文件的特定行
- 8. 使用用戶輸入從分隔文本文件中刪除特定行。 (JAVA)
- 9. 如何從richTextBox中刪除/刪除特定文本行?
- 10. 刪除特定行從文件
- 11. Java FileUtils:從文件中刪除特定行
- 12. 批處理腳本刪除文本文件中的特定行
- 13. vb腳本只刪除文本文件中的特定行
- 14. 刪除特定文本文件
- 15. 從文件中刪除特定行的腳本
- 16. Powershell - 從文本文件中刪除行
- 17. 從文本文件中刪除一行?
- 18. 從文本文件中刪除一行
- 19. 從文本文件中刪除行
- 20. 從文本文件中刪除多行
- 21. 從from.txt文件中刪除文本行
- 22. 從php文件中刪除特殊行
- 23. 從Java中的大文本文件中刪除行
- 24. 如何從java中的文本文件中刪除空行
- 25. 如何刪除28GB分隔文本文件中的特定行?
- 26. 用c刪除文本文件中的特定行#
- 27. 在文本文件中刪除包含特定字符的行
- 28. 如何刪除文本文件中的特定行(Windows)
- 29. 刪除文本文件中的特定行?
- 30. 刪除文本文件中的特定行
儘管當然,整個文件沒有必要放入內存,因爲您可以在同一個循環中讀寫。 – 2011-04-27 07:18:53
@Simon - 同意 - 我們不需要將整個文件存儲在內存中,但是最後,文件的每個字節都被讀取,緩衝在RAM的某處並寫入新的目標文件。 – 2011-04-27 10:21:24