2011-08-25 2 views

Répondre

10

Que diriez-vous quelque chose comme ceci:

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

Remarque - pas testé, peut ne pas être une syntaxe parfaite mais vous donne une idée/approche à suivre.

Voir les JavaDocs suivants à titre de référence: 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

Cela supprimera toutes les nouvelles lignes dans le fichier. –

4

Jetez un oeil à la fonction trim()

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

En outre, un code serait utile ...

+1

C'est la seule solution valide qui est déjà incluse dans l'objet String. Il n'y a absolument aucun besoin de faire autre chose. Cela doit être défini comme la réponse – Omri

+2

'Renvoie une copie de la chaîne, avec les espaces de début et de fin omis. 'Il ne supprime pas les espaces dans le fichier texte, uniquement en tête et en fin. Ce n'est pas ce que le PO a demandé. OP veut supprimer tous les espaces et les onglets. –

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

Supprimer les espaces pour chaque ligne et ne considèrent pas les lignes vides et nulles:

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

Utilisé pour enlever vide lignes dans le même fichier.

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

Dans ce programme, j'ai supprimé tous les espaces blancs et tout lu du fichier que j'ai lu sur une seule ligne. –

Questions connexes