Come usare Buffered Reader in Java

Scusa se questa è una domanda ovvia, ma non riesco a capirlo. Sto lavorando a un incarico per un corso sulle strutture dati. Si tratta di estrarre dati da un semplice file .dat. Non avevamo mai usato nessuna delle opzioni di accesso ai file in Java prima, quindi il professore ci ha appena dato il codice funzionante per quel pezzo. Quindi una class chiamata ‘FileReadExample’ crea un nuovo object lettore bufferizzato, apre un file e quindi dovrebbe estrarre un gruppo di dati su quel file. Ma non posso accedere a nessuno dei dati. In un file testMain separato, creo un nuovo object FileReadExample chiamato fr e poi provo a stampare cose come fr.readLine () da lì, ma mi dice che non esiste un tale metodo. Sono sicuro che mi manca qualcosa incredibilmente facile.

EDIT – Il codice professori:

import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class FileReadExample { public static void main(String[] args) { System.out.println("got here"); try { BufferedReader in = new BufferedReader(new FileReader(new File("sample-file.dat"))); System.out.println("File open successful!"); int line = 0; for (String x = in.readLine(); x != null; x = in.readLine()) { line++; System.out.println(x); if (line <= 3) { String[] tokens = x.split(" "); System.out.println("Number of tokens in line " + line + ": " + tokens.length); System.out.println("The tokens are:"); for (String token : tokens) { System.out.println(token); } } else { String[] tokens = x.split("\\|"); System.out.println("Number of tokens in line " + line + ": " + tokens.length); System.out.println("The tokens are:"); for (String token : tokens) { System.out.println(token); } Integer[] values = new Integer[tokens.length]; Integer sum = 0; for (int i = 0; i < tokens.length; i++) { sum += Integer.parseInt(tokens[i]); } System.out.println("Sum: " + sum); } } } catch (IOException e) { System.out.println("File I/O error!"); } } } 

Posso pubblicare il codice che il professore ha dato, ma non riesco a capire come ottenere la formattazione giusta in questi post. Sto leggendo che devo mettere quattro spazi davanti a ogni riga per ottenere la formattazione del codice correttamente qui? Non c’è modo di bloccare un intero gruppo di codice contemporaneamente? Di nuovo, mi sento come se mi mancasse qualcosa di estremamente facile lì.

Grazie.

Prova questo per leggere un file:

 BufferedReader reader = null; try { File file = new File("sample-file.dat"); reader = new BufferedReader(new FileReader(file)); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } finally { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } 

Per quanto ne so fr è l’object della tua class FileReadExample. Quindi è ovvio che non avrà alcun metodo come fr.readLine () se non lo crei tu stesso.

in secondo luogo, penso che un costruttore corretto della class BufferedReader ti aiuterà a svolgere il tuo compito.

 String str; BufferedReader buffread = new BufferedReader(new FileReader(new File("file.dat"))); str = buffread.readLine(); . . buffread.close(); 

questo dovrebbe aiutarti.