Leggere un file in una stringa in Java
-
Files.readString()
per leggere una stringa da un file in Java 11 -
Files.lines(file_path)
per leggere il file in una stringa in Java 8 -
Files.readAllLines()
per leggere la stringa dal file in Java 7 -
BufferedReader.readLine
per leggere una stringa da un file
Introdurremo come leggere il contenuto di un file e poi convertirlo in una stringa Java.
Di seguito è riportato il file testFile.txt
, che include alcuni contenuti che vogliamo leggere come una stringa Java.
A B C D 1 2 3
Files.readString()
per leggere una stringa da un file in Java 11
Java 11 introduce un nuovo metodo Files.readString()
che ci permette di leggere il file facilmente e senza scrivere molto codice.
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
Path path = Paths.get("/Projects/testFile.txt");
try {
String content = Files.readString(path);
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Produzione:
A
B
C
D
1
2
3
Files.lines(file_path)
per leggere il file in una stringa in Java 8
L’API Stream
è stata introdotta in Java 8 che elabora il dato insieme di dati in vari modi.
La classe Files
, come parte del pacchetto java.NIO
, contiene un metodo lines()
che produce Stream<String>
o un flusso di stringhe da un file di testo.
Proviamo a convertire il contenuto del file in una stringa Java utilizzando Stream API.
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
try {
Path path = Paths.get("/Projects/testFile.txt");
Stream<String> lines = Files.lines(path);
String content = lines.collect(Collectors.joining(System.lineSeparator()));
System.out.println(content);
lines.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Produzione:
A
B
C
D
1
2
3
Ricorda sempre di chiudere lo stream dopo averlo utilizzato. Notare il lines.close()
.
Assicura che lo stream venga chiuso una volta che il contenuto è stato stampato.
Files.readAllLines()
per leggere la stringa dal file in Java 7
Leggere i file non è stato così facile fino a Java 7, che ha portato il nuovo metodo nel pacchetto java.nio
. È il metodo Files.readAllLines()
che restituisce una lista di stringhe dal file. Ogni stringa rappresenta una singola riga del file.
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class Main {
public static void main(String[] args) {
try {
Path path = Paths.get("/Projects/testFile.txt");
List<String> contentList = Files.readAllLines(path, StandardCharsets.UTF_8);
System.out.println(contentList);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Produzione:
[A, B, C, D, 1, 2, 3]
BufferedReader.readLine
per leggere una stringa da un file
Possiamo anche ottenere il contenuto del nostro file usando la classe BufferedReader
, che legge il testo da un flusso di input.
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) throws IOException {
String path = "/Projects/testFile.txt";
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
String line = br.readLine();
StringBuilder sb = new StringBuilder();
while (line != null) {
sb.append(line).append("\n");
line = br.readLine();
}
String fileAsString = sb.toString();
System.out.println(fileAsString);
}
}
}
Produzione:
A
B
C
D
1
2
3
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArticolo correlato - Java String
- Converti array di byte in stringa esadecimale in Java
- Converti stringa Java in byte
- Eseguire la conversione di array da stringa a stringa in Java
- Rimuovi sottostringa dalla stringa in Java
- Confronta le stringhe in Java
- Genera stringa casuale in Java