Avatar billede brianb Nybegynder
11. april 2008 - 20:11 Der er 4 kommentarer

FileInputStream hente og seperere data

hej eksperter jeg har en .txt fil jeg gerne vil læse fra, og skille linjerne hver gang der er et ",", hvordan gør jeg dette nemmest, jeg kunne forestille mig, at jeg skulle bruge en arrayList, men hvordan jeg kommer videre ved jeg ikke helt.

fx. hans,peter,søren skal komme listet på ny linje

import java.io.*;
import java.util.ArrayList;

public class stream
{
   
    public static void main (String args[])
    {
        //stream så filen kan læses
        FileInputStream find;       
       
        try
        {
            //åben filen
            find = new FileInputStream ("fil.txt");

            // Læs en linie af teksten

            System.out.println( new DataInputStream(find).readLine());
           
            // luk forbindelsen
            find.close();       
        }
        // find eventuelle fejl
        catch (IOException e)
        {
            System.err.println ("Kan ikke læse filen");
            System.exit(-1);
        }
    }   
}
Avatar billede arne_v Ekspert
12. april 2008 - 03:12 #1
Drop DataInputStream og brug BufferedReader - og brug split.

...
BufferedReader br = new BufferedReader(new StreamReader(find));
String line;
while((line = br.readLine()) != null) {
    String[] items = line.split(",");
    // gør noget med items
}
...
Avatar billede brianb Nybegynder
12. april 2008 - 09:22 #2
Når jeg opstiller det sådan, får jeg intet printet ud?

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class stream
{
   
    public static void main (String args[])
    {
        //stream så filen kan læses
        FileReader fr;
        try {
          fr = new FileReader (new File("fil.txt"));
          BufferedReader br = new BufferedReader (fr);
          String line = br.readLine();
         
          while((line = br.readLine()) != null) {
                String[] items = line.split(",");
                System.out.println(items);
            }
          br.close();
        }
       
        // find eventuelle fejl
        catch (Exception e)
        {
            System.err.println ("Kan ikke læse filen");
            System.exit(-1);
        }
    }   
}
Avatar billede _carsten Nybegynder
12. april 2008 - 13:31 #3
Sandsynligvis fordi der kun er én linie i filen

          BufferedReader br = new BufferedReader (fr);
          // String line = br.readLine();  UDKOMMENTER DENNE LINIE
                                          DU LÆSER DEN, MEN UDSKRIVER DEN IKKE


Sådan kan du udskrive de enkelte elementer

          while((line = br.readLine()) != null) {
                String[] items = line.split(",");
                for(int i = 0; i < items.length;i++){
                    System.out.println(items[i]);
                }
            }
Avatar billede arne_v Ekspert
05. maj 2008 - 06:08 #4
brian ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester