2011-08-25 187 views
6

如何从txt删除所有空格和空行使用Java SE的文件?删除所有空格和空行

输入:

qwe 
    qweqwe 
    qwe 



qwe 

输出:

qwe 
qweqwe 
qwe 
qwe 

谢谢!

+3

向我们展示你的代码到目前为止 – JoseK

+1

你有什么代码,使远吗? –

+1

正在做作业吗? – Bozho

回答

10

怎么是这样的:

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

注意 - 没有经过测试,可能不是完美的语法,但给你一个想法/方法要遵循。

请参见下面的JavaDoc以供参考: 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

这将删除文件中的所有换行符。 –

4

看一看TRIM()函数

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

此外,一些代码将是有益的......

+1

这是在String对象中已经被emded的唯一有效的解决方案。绝对不需要做任何事情。这应该被设置为答案 – Omri

+2

'返回字符串的副本,省略了前导和尾部空白.'它不会删除文本文件中的空白,只会导致&尾随。这不是OP要求的。 OP想要删除所有空格和制表符。 –

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

的每一行中的空格,不考虑空和空行:

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

用于去除空行在同一个文件中。

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

在这个程序中,我删除了所有的空格,并从单行读取的文件中读取所有内容。 –