2011-08-25 84 views

Trả lời

10

Làm thế nào về một cái gì đó như thế này:

FileReader fr = new FileReader("infile.txt"); 
BufferedReader br = new BufferedReader(fr); 
FileWriter fw = new FileWriter("outfile.txt"); 
String line; 

while((line = br.readLine()) != null) 
{ 
    line = line.trim(); // remove leading and trailing whitespace 
    if (!line.equals("")) // don't write out blank lines 
    { 
     fw.write(line, 0, line.length()); 
    } 
} 
fr.close(); 
fw.close(); 

Note - không được thử nghiệm, có thể không phải là cú pháp hoàn hảo nhưng cung cấp cho bạn một ý tưởng/cách tiếp cận để làm theo.

Xem JavaDocs sau cho mục đích tham khảo: http://download.oracle.com/javase/7/docs/api/java/io/FileReader.html http://download.oracle.com/javase/7/docs/api/java/io/FileWriter.html

+0

Thao tác này sẽ xóa tất cả các dòng mới trong tệp. –

4

Có xem xét cắt chức năng()

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#trim()

Ngoài ra, một số mã sẽ là hữu ích ...

+1

Đó là giải pháp hợp lệ duy nhất đã được tích hợp trong đối tượng String. Hoàn toàn không cần phải làm gì khác. Điều này nên được đặt làm câu trả lời – Omri

+2

'Trả về một bản sao của chuỗi, với khoảng trống đầu và cuối được bỏ qua.' Nó không loại bỏ khoảng trống bên trong tệp văn bản, chỉ dẫn đầu & theo sau. Đây không phải là những gì OP yêu cầu. OP muốn xóa tất cả dấu cách và tab. –

3
... 
Scanner scanner = new Scanner(new File("infile.txt")); 
PrintStream out = new PrintStream(new File("outfile.txt")); 
while(scanner.hasNextLine()){ 
    String line = scanner.nextLine(); 
    line = line.trim(); 
    if(line.length() > 0) 
     out.println(line); 
} 
... 
0

Di chuyển không gian cho mỗi dòng và không xem xét dòng trống và null:

String line = buffer.readLine(); 

while (line != null) { 
    line = removeSpaces(line);   
    //ignore empty lines 
    if (line.isEmpty()) return; 

     ....code.... 


    line = buffer.readLine(); 
} 




public String removeSpaces (String arg) 
{ 
    Pattern whitespace = Pattern.compile("\\s"); 
    Matcher matcher = whitespace.matcher(arg); 
    String result = ""; 
    if (matcher.find()) { 
     result = matcher.replaceAll(""); 
    } 
    return result; 
} 
0

Được sử dụng để loại bỏ trống các dòng trong cùng một tệp.

public static void RemoveEmptyLines(String FilePath) throws IOException 
{ 
    File inputFile = new File(FilePath); 
    BufferedReader reader = new BufferedReader(new FileReader(inputFile)); 
    String inputFileReader; 
    ArrayList <String> DataArray = new ArrayList<String>(); 
    while((inputFileReader=reader.readLine())!=null) 
    { 
     if(inputFileReader.length()==0) 
     { 
      continue; 
     } 
     DataArray.add(inputFileReader); 
    } 
    reader.close(); 

    BufferedWriter bw = new BufferedWriter(new FileWriter(FilePath)); 
    for(int i=0;i<DataArray.size();i++) 
    { 
     bw.write(DataArray.get(i)); 
     bw.newLine(); 
     bw.flush(); 
    } 
    bw.close(); 
} 
0
package com.home.interview; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 

public class RemoveInReadFile { 

    public static void main(String[] args) { 

     try { 
      Scanner scanner = new Scanner(new File("Readme.txt")); 


      while(scanner.hasNext()) 
      { 
       String line = scanner.next(); 

       String lineAfterTrim = line.trim(); 
       System.out.print(lineAfterTrim); 
      } 


     } 

     catch (FileNotFoundException e) { 

      e.printStackTrace(); 
     } 

    } 

} 
+0

Trong chương trình này, tôi đã xóa tất cả các khoảng trắng và đọc tất cả mọi thứ từ tệp tôi đọc trong một dòng. –

Các vấn đề liên quan