Domanda

io e il mio compagno stiamo lavorando su un programma per la nostra Object Oriented Programming corso al college. Stiamo cercando di scrivere il testo in un file come un database di informazioni. Il problema è che quando cerchiamo di leggere le righe corrispondenti con BufferedReader non possiamo sembrare calcolare fuori come leggere le linee corrette. Le uniche funzioni avaliable sembrano essere letti (), che legge solo un carattere. readLine () legge solo una linea (non la linea che vogliamo per leggere. saltare () salta solo un numero di caratteri specificati. Qualcuno ha un'idea di come potremmo dire al programma quale linea vogliamo leggere? Il nostro metodo getAnswer () con l'int argomento RowNumber è quello che stiamo cercando di fare: Superclass: http://pastebin.com/d2d9ac07f Sottoclasse è irrilevante (soprattutto perché non abbiamo ancora scritto). Naturalmente è Java stiamo lavorando con. Grazie in anticipo.

È stato utile?

Soluzione

Si dovrà utilizzare readLine(), farlo in un ciclo, contare il numero di righe avete già letto fino a quando hai raggiunto il numero di linea che si desidera elaborare.

Non esiste un metodo in BufferedReader o altra classe libreria standard che leggerà numero di riga N per voi automaticamente.

Altri suggerimenti

Utilizzare i Lettori Buffered .readline (); metodo fino ad arrivare ai dati che vi serve. Buttare via tutto quello che non e quindi memorizzare i dati si ha bisogno. Ha assegnato questo non è effiecent dovrebbe ottenere il vostro lavoro fatto.

readLine() in Java legge semplicemente dal buffer fino a quando non si imbatte in un carattere di nuova riga, quindi non ci sarebbe davvero nessun modo per voi di specificare che linea dovrebbe essere letto da un file perché non v'è alcun modo per Java per sapere esattamente quanto tempo ogni linea è.

Questa ragione è anche per questo che è difficile da usare skip() per passare a una particolare linea.

Potrebbe essere meglio per voi per collegare attraverso linee utilizzando readLine(), poi, quando il vostro contatore è dove vuoi che sia, inizia l'elaborazione.

String line = myBufferedReader.readLine();
for(int i = 1; i < whichLine && line != null; i++){
    line = myBufferedReader.readLine();
}

/* do something */
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top