Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: esercizio file binari

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    123

    esercizio file binari

    Devo implementare una classe Java che legga da file binario matrice 5x5 di numeri interi ed esegua la somma per righe.

    Ho fatto il mio file binario con blocco note così :
    0 0 1 0 1
    1 1 1 1 1
    1 0 0 1 0
    1 0 0 0 0
    0 0 1 1 1

    Poi ho provato a fare il codice e dentro il try ho messo questo :

    FileInputStream fis = new FileInputStream(new File("matrice.txt"));
    int c = fis.read();
    while(c != -1)
    {
    c=fis.read();
    // ...
    }
    fis.close();

    però ora ho qualche problema a lavorare con array ed andare a leggere nel file. Con i file di testo ce la faccio, qua proprio non riesco.
    Qualche consiglio!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Visto che stai andando a leggere un file di testo e che dovrai andare a fare la lettura per righe, ti viene più comodo usare un BufferedReader a cui dare in pasto il FileReader e quindi utilizzare il metodo readLine offerto da BufferedReader.

    Dividendo il problema in sotto problemi:
    - leggere il file, una riga alla volta;
    - interpretare il conenuto della riga: StringTokenizer può venirti incontro.
    - fare la somma degli elementi di ciascuna riga (dove dei andare a salvare questa informazione?)
    - ritornare i risultati ottenuti.

    Occhio che tecnicamente, non stai leggendo un file binario, ma un file che rappresenta una matrice i cui elementi a loto volta vogliono rappresentare numeri scritti nel sistema binario... il risultato della somma dovrà essere convertito in "formato binario" a sua volta?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    123
    Andrea, ho proprio il testo dell'esercizio che mi dice :
    Implementare una classe Java che legga da file binario matrice 5x5 di interi ed esegua somma per righe.

    Tutto qua

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    La mia era solo una precisazione e quello è il minore dei problemi dell'esercizio.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    123
    quindi il testo dell'essercizio è fuorviante perchè mi dice di leggere da file binario quando invece devo utilizzare tutte le cose viste con i file di testo...giusto?

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Esatto. Come stavi procedendo tu non è sbagliato, ma si prospettava un lavoro ben più lungo di quanto non sia.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    123
    Incredibile...
    nel frattempo avevo mandato una mail al mio prof. per chiedere se potevo usare i file di testo, mi ha risposto con un secco NO, devi usare solo ed esclusivamente tutto ciò che riguarda i file binari per prendere confidenza con essi...


  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    123
    Ci stò provando da ormai tre ore...a questo punto mi viene il dubbio:
    per caso nel file blocco note che ho creato ed ho dato estensione .dat (appunto perchè si tratta di file binario), la matrice la devo inserire in qualche particolare modo?
    io l'ho inserita semplicemente così :
    0 0 1 0
    1 1 1 0
    0 0 0 0
    1 0 0 1

    mettendo 0 oppure 1 in ogni cella, e distanziate solo dallo spazio...
    non so più cosa pensare per risolvere questo esercizio...questo è l'ultimo dubbio che mi è venuto in mente...

  9. #9
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Aspetta! Non è che se crei un file di testo e gli cambi estensione in .dat questo automaticamente diventa binario...!

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da desa
    Aspetta! Non è che se crei un file di testo e gli cambi estensione in .dat questo automaticamente diventa binario...!
    E' quello che cercavo di dire. Se tu apri un file di testo in un editor esadecimale ti rendi subito conto di quello che significa "binario". Per intenderci un file di testo contenete la matrice 4 x 4 che hai scritto tu, avrebbe più o meno quest'aspetto

    codice:
    Offest | Contenuto
    00      |30 20 30 20 |31 20 30 0d | ....
    Ovvero 0x30 corrisponde all'ASCII "0", 0x20 allo spazio, 0x31 ad "1" etc etc. E' proprio questo quello che devi trattare? Non è che non si possa fare, tutt'altro... solo che diventerebbe giusto un attimo più tedioso di:

    codice:
    public static void ByteMatrix(String filename) {
            try {
                BufferedReader br = new BufferedReader(new FileReader(filename));
                String line;
                StringTokenizer st;;
                int temp;
                while ((line = br.readLine()) != null) {
                    temp = 0;
                    st = new StringTokenizer(line);
                    while (st.hasMoreTokens()) {
                        try {
                            temp += Integer.parseInt(st.nextToken());
                        }
                        catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    System.out.println(temp);
                }
            }
            catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.