Zczytywanie danych z pliku

0

Witam potrzebuje zczytac dane z pliku ktory jest w takim formacie:

sdasda
2
80
90
 
dsadds
0
430
 
sadas
2
5656
6556
26565

Zrobilem to w taki sposob:

String town = fileIn.next();            
int name = fileIn.nextInt();            
int name1 = fileIn.nextInt();            
int name3 = fileIn.nextInt();        
fileIn.hasNext();                        
String town1 = fileIn.next();            
int Change1 = fileIn.nextInt();            
int Time3 = fileIn.nextInt();            
fileIn.hasNext();                        
String town2 = fileIn.next();            
int name8 = fileIn.nextInt();            
int name7 = fileIn.nextInt();            
int Time565 = fileIn.nextInt();            
int Time67 = fileIn.nextInt();

Program dziala jednak ze jezeli chcial bym zmienic dane w pliku np dodac jakies nowe dane lub zmodyfikowac stare zapewne musial bym to edytowac pod celowy dokument. Jak moge to zczytac w bardziej elastyczny sposob? Dane ktore zmieram sa pozniej uzywane w dzialaniach matematycznych i w if statmentach.

0

a zapomnialem dodac ze jezeli po nazwie jest np 0 tzn ze dalej bedzie tylko 1 numer gdy beda 2 tzn ze beda dwa, pozniej znowu nazwa i to samo.

0

Opisz dokładnie jaki jest możliwy format pliku. Czy plik będzie się zawsze składał z rozdzielonych pustym wierszem sekcji:
tekst
n (liczba)
liczba1
...
liczban-1

0

Tak zawsze bedzie przestrzen pomiedzy sekcjami, jedynie zmienna to bedzie liczba takich sekcji oraz liczba tych numerow w danej sekcji (okreslona pierwsza liczba w danej sekcji) . W innym tlumaczeniu chodzi o to ze jezeli np ktos doda cos do pliku albo np zmieni dane z 1 sekcji to wtedy program przestanie dzialac poprawnie a ja chcial bym by dzialal poprawnie przy drobnych zmianach. Zadaniem programu jest wyciagnac dane z pliku i porownac je z danymi ktore uzytkownik wpisze.

0

Może coś takiego:

import java.util.*;
import java.io.*;
public class Odczyt
{
    public static void main(String[] args)
    {
        new Odczyt();
    }
    public Odczyt()
    {
        ArrayList<Sekcja> odczyty = new ArrayList<Sekcja>();
        boolean czytajLiczby = false;
        String s;
        Sekcja sekcja = null;
        try
        {
            Scanner sc = new Scanner(new File("test.txt"));
            while(sc.hasNextLine())
            {
                s = sc.nextLine();
                if(!czytajLiczby)
                {                    
                    czytajLiczby = true;
                    sc.nextLine();
                    sekcja = new Sekcja(s);
                    odczyty.add(sekcja);
                }
                else
                {
                    if(s.isEmpty())
                    {
                        czytajLiczby = false;                        
                    }
                    else
                    {
                        sekcja.liczby.add(Integer.valueOf(s));
                    }
                }
            }
            sc.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
    class Sekcja
    {
        String nazwa;
        ArrayList<Integer> liczby = new ArrayList<Integer>();
        public Sekcja(String nazwa)
        {
            this.nazwa = nazwa;
        }
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1