2013-04-01 7 views
-1
date     time    kg 

12/10/2013  00.00.01    1 
13/11/2013  00.00.05    2 
17/12/2013  00.00.90    5 
21/12/2013  00.00.23    6 
27/12/2013  00.00.43    9 

J'ai ces données dans un fichier txt. Je voudrais faire un programme en Java qui lirait ces données. J'ai écrit le code ci-dessus mais j'ai des erreurs. Quelqu'un pourrait-il m'aider? Les données ont de l'espace entre elles.Programme en Java qui lit les données d'un fichier texte

import java.io*; 

public class ReadTextfile{ 
    public static void main (String[] args) { 
     File file = new File ("test.txt"); 
     StringBuilder line = new StringBuilder(); 
     BufferedReader reader = null; 

try { 
    reader = new BufferedReader (new FileReader(file)); 
    String text = null; 

    while ((text = reader.readLine()) !=null) { 
      line.append(text) 
       .append(System.getProperty ("line.separator")); 
    } 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    }finally { 
    try { 
     if (reader !=null){ 
      reader.close(); 
    } 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 
    } 
    System.out.println(line.toString()); 
    } 
    } 
+4

Pouvez-vous nous dire quelles erreurs vous avez commises? –

+1

Quelle erreur obtenez-vous? – Falaque

+1

quel problème vous obtenez ??? –

Répondre

0
catch (FileNotFoundException e) 

C'est le code inaccessible, car au-dessus vous pris IOException.

Remarque that:

public class FileNotFoundException extends IOException 

Votre code ne compilera pas. Supprimer cette capture (Vous ne l'avez même pas fermer ..)

Autre chose, si ce n'est pas un type, vous devez remplacer java.io* par import java.io.*.

0

garçon vous êtes seulement un problème de syntaxe

1: remplacer

import java.io* with import java.io.* 

2: prendre soin de votre corps de capture étant commencé et fermée correctement

try 
{ 
// your code 
} 
catch(Exception e) 
{ 

} 

est le travail ici code, comparez votre programme

import java.io.*; 

public class ReadTextfile{ 
    public static void main (String[] args) 
    { 
     File file = new File ("C:/Users/hussain.a/Desktop/test.txt"); 
     StringBuilder line = new StringBuilder(); 
     BufferedReader reader = null; 

try { 
    reader = new BufferedReader (new FileReader(file)); 
    String text = null; 

    while ((text = reader.readLine()) !=null) { 
      line.append(text) 
       .append(System.getProperty ("line.separator")); 
    } 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    finally 
    { 
    try { 
     if (reader !=null){ 
      reader.close(); 
    } 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
    } 
    System.out.println(line.toString()); 
    } 
    } 
+0

merci frère! :) – userefoikon

0

je prendrais l'approche suivante:

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

public class ReadTextFile 
{ 
    public static void main(String[] args) throws FileNotFoundException 
    { 
     File file = new File("test.txt"); 
     Scanner scanner = new Scanner(file); 
     List<Result> results = new ArrayList<Result>(); 

     while(scanner.hasNextLine()) 
     { 
      String currentLine = scanner.nextLine(); 
      String [] resultArray = currentLine.split(" "); 
      results.add(new Result(resultArray[0], resultArray[1], resultArray[2])); 
     } 
     scanner.close(); 
    } 

    private static class Result 
    { 
     private String date; 
     private String time; 
     private String kg; 

     public Result(String date, String time, String kg) 
     { 
      super(); 
      this.date = date; 
      this.time = time; 
      this.kg = kg; 
     } 

     public String getDate() 
     { 
      return date; 
     } 

     public String getTime() 
     { 
      return time; 
     } 

     public String getKg() 
     { 
      return kg; 
     } 
    } 
} 

Maintenant, vous pouvez retirer toute information que vous voulez dans la liste des résultats que vous avez.

Donc, si vous vouliez imprimer tout, vous pouvez faire ce qui suit:

for(Result singleResult : results) 
{ 
    System.out.println(singleResult.getDate() + " " + singleResult.getTime() + " " + singleResult.getKg()); 
} 

Vous pouvez essentiellement faire ce que vous voulez avec les données. Cette approche vous permettrait également de transformer les données en différents types avant même de créer l'objet Résultat.

Questions connexes