Come leggere e visualizzare i dati da file .txt?Lettura e visualizzazione dei dati da un file .txt
risposta
BufferedReader in = new BufferedReader(new FileReader("<Filename>"));
Quindi, è possibile utilizzare in.readLine(); leggere una singola riga alla volta. Per leggere fino alla fine, scrivere un ciclo while come tale:
String line;
while((line = in.readLine()) != null)
{
System.out.println(line);
}
in.close();
Ricordarsi di aggiungere in.close(); alla fine del tuo codice. – Brian
come si controlla quanto è lungo il file? –
In generale:
- Creare un
FileInputStream
per il file. - Creare un
InputStreamReader
avvolgendo il flusso di input, specificando la corretta encoding - creare Opzionalmente un
BufferedReader
intorno alInputStreamReader
, che rende più semplice per leggere una riga alla volta. - Leggi fino a quando non ci sono più dati (ad esempio
readLine
restituisce null) - Visualizza i dati mentre lo fai o lo bufferizzi per dopo.
Se hai bisogno di ulteriore aiuto, ti preghiamo di essere più specifico nella tua domanda.
Se il file è strettamente testo, preferisco utilizzare la classe java.util.Scanner
.
È possibile creare una Scanner
fuori di un file:
Scanner fileIn = new Scanner(new File(thePathToYourFile));
Quindi, è possibile leggere il testo dal file utilizzando i metodi:
fileIn.nextLine(); // Reads one line from the file
fileIn.next(); // Reads one word from the file
E, si può controllare se c'è altro testo rimasto con:
fileIn.hasNext(); // Returns true if there is another word in the file
fileIn.hasNextLine(); // Returns true if there is another line to read from the file
Una volta letto il testo e salvato in un String
, è possibile stampare la stringa alla riga di comando con:
System.out.print(aString);
System.out.println(aString);
Il link postato contiene la specifica completa per la classe Scanner. Ti sarà utile per aiutarti con qualsiasi altra cosa tu voglia fare.
Mi dimentico sempre di Scanner, non l'ho mai usato in realtà ... Peccato che ci voglia un charset * nome * però :((E raccomando sempre di specificare esplicitamente il set di caratteri) –
Beh, sto assumendo lo scenario più semplice possibile. i set di caratteri possono diventare confusi, di solito non devi preoccuparti di questo – jjnguy
Ma gli scanner sono grandi per la lettura di file di testo veloce e sporca. – jjnguy
Molto probabilmente vorrete utilizzare la classe FileInputStream:
int character;
StringBuffer buffer = new StringBuffer("");
FileInputStream inputStream = new FileInputStream(new File("/home/jessy/file.txt"));
while((character = inputStream.read()) != -1)
buffer.append((char) character);
inputStream.close();
System.out.println(buffer);
Si vuole anche per la cattura di alcune delle eccezioni generate dal metodo read() e il costruttore FileInputStream, ma questi sono dettagli di implementazione specifici per il tuo progetto.
inputStream.read() non restituisce un carattere * * - i t restituisce un * byte * (come int, ammettiamolo, ma sono cose molto diverse). Per leggere il testo, dovresti usare un Reader. –
Se si vuole prendere alcune scorciatoie è possibile utilizzare Apache Commons IO:
import org.apache.commons.io.FileUtils;
String data = FileUtils.readFileToString(new File("..."), "UTF-8");
System.out.println(data);
:-)
Amo questo pezzo di codice, utilizzarlo per caricare un file in una stringa:
File file = new File("/my/location");
String contents = new Scanner(file).useDelimiter("\\Z").next();
Per leggere le righe da.file txt con encoding UTF-8
:
File krokiPath = new File("Records\Record");
BufferedReader in = new BufferedReader(
new InputStreamReader(new FileInputStream(krokiPath), "UTF8"));
while((r = in.readLine()) != null) {
System.out.println(r);
}
in.close();
Sì, l'ho provato. Uso caratteri come "ąśćłżóź" e funziona perfettamente. Senza di esso, non potrei usare questi caratteri. –
Interessante. Grazie. – Tom
Un'altra cosa. Funziona solo per app/oggetti che supportano UTF-8 :) –
public class PassdataintoFile {
public static void main(String[] args) throws IOException {
try {
PrintWriter pw = new PrintWriter("C:/new/hello.txt", "UTF-8");
PrintWriter pw1 = new PrintWriter("C:/new/hello.txt");
pw1.println("Hi chinni");
pw1.print("your succesfully entered text into file");
pw1.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedReader br = new BufferedReader(new FileReader("C:/new/hello.txt"));
String line;
while((line = br.readLine())!= null)
{
System.out.println(line);
}
br.close();
}
}
Ciao e benvenuto su StackOverflow. Si prega di prendere un po 'di tempo per leggere la pagina di aiuto, in particolare le sezioni denominate ["Quali argomenti posso chiedere di qui?"] (Http://stackoverflow.com/help/on-topic) e ["Quali tipi di domande dovrei evitare di chiedere? "] (http://stackoverflow.com/help/dont-ask). E, ancora più importante, leggi [la lista di controllo delle domande di Overflow dello stack] (http://meta.stackexchange.com/q/156810/204922). Potresti anche voler conoscere [Esempi minimi, completi e verificabili] (http://stackoverflow.com/help/mcve). –
In Java 8, è possibile leggere un file intero, semplicemente con:
public String read(String file) throws IOException {
return new String(Files.readAllBytes(Paths.get(file)));
}
o se una risorsa:
public String read(String file) throws IOException {
URL url = Resources.getResource(file);
return Resources.toString(url, Charsets.UTF_8);
}
Sotto è il codice che puoi provare a leggere un file e visualizzarlo in java usando la classe scanner. Il codice leggerà il nome del file dall'utente e stamperà i dati (file VIM del Blocco note).
import java.io.*;
import java.util.Scanner;
import java.io.*;
public class TestRead
{
public static void main(String[] input)
{
String fname;
Scanner scan = new Scanner(System.in);
/* enter filename with extension to open and read its content */
System.out.print("Enter File Name to Open (with extension like file.txt) : ");
fname = scan.nextLine();
/* this will reference only one line at a time */
String line = null;
try
{
/* FileReader reads text files in the default encoding */
FileReader fileReader = new FileReader(fname);
/* always wrap the FileReader in BufferedReader */
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null)
{
System.out.println(line);
}
/* always close the file after use */
bufferedReader.close();
}
catch(IOException ex)
{
System.out.println("Error reading file named '" + fname + "'");
}
}
}
- 1. Lettura di dati da un file plist
- 2. lettura dei dati da file di MATLAB in C
- 3. Comprime i file durante la lettura dei dati da STDIN
- 4. Lettura dei dati da DataGridView in C#
- 5. lettura dei dati da XML in un array
- 6. Lettura e interpretazione dei dati da un file binario in Python
- 7. Lettura da file
- 8. Leggi float da un file .txt
- 9. Lettura da un file e memorizzazione nell'array
- 10. Ottenere dati interi da file txt in Java
- 11. Importa dati da txt a Mathematica
- 12. d3 - lettura dei dati JSON invece del file CSV
- 13. Posso leggere un file .TXT con PHP?
- 14. Lettura delimitato da tabulazione dei dati per R
- 15. Azioni personalizzate Wix - Lettura dei parametri da un file XML
- 16. Come salvare un frame di dati in un file txt o excel separato da colonne
- 17. Riempire un array con le stringhe da un file txt
- 18. la lettura dei dati da MATLAB in Java
- 19. lettura dei dati scintilla da MySQL in parallelo
- 20. Lettura dei dati da un file mentre è in fase di scrittura su
- 21. lettura dei dati da Azure Blob con Spark
- 22. Lettura da un file app.config
- 23. Come gestire i collegamenti simbolici durante la lettura dei dati da un percorso file in swift
- 24. Scrittura su file txt da StringWriter
- 25. C# - la lettura e la visualizzazione HTML da risorse
- 26. Lettura dei dati dal file binario tick di Dukascopy
- 27. I/O file: lettura da un file e scrittura in un altro (Java)
- 28. Come caricare determinate righe da un file .txt in Python?
- 29. Lettura dei dati timestamp in R da più fusi orari
- 30. lettura dei dati da fsockopen utilizzando fgets/fread pende
qualche informazione in più per la questione sarebbe probabilmente aiuterà a ottenere risposte migliori. Le informazioni su ciò che sai, ciò che pensi di sapere, ecc. Possono aiutarti se ci sono domande specifiche. –