Avrei bisogno una mano, perchè non riesco a venirne fuori. Sto cercando di utilizzare la classe Files per leggere da un percorso del filesystem un file, ma continua a darmi un eccezione.
Sostanzialmente ho due classi, la Main e la classe che gestisce l'importazione del file+stampa a video. Alla classe che effettua l'importazione viene passata dal main il percorso e niente altro.
L'eccezione è la seguente:
Exception in thread "main" java.io.UncheckedIOException: java.nio.charset.MalformedInputException: Input length = 1
Mentre il codice, che riporto qui sotto della classe. gestisce l'importazione del file e la stampa a video. L'intento è quello di inserire in una List di stringhe il contenuto del file e poi stamparlo a video.
public class Main {
public static void main(String[] args) {
String percorso="D:\\flussoCaratteri.txt";
ImportExport ie=new ImportExport();
ie.carica1(percorso);
}
}
public class ImportExport {
public void carica1(String percorso){
Path fileP=Paths.get(percorso);
List<String> linee=null;
try{
linee=Files.readAllLines(fileP);
System.out.println(linee);
}catch(IOException e){
e.getMessage();
}
}
}
Ho provato anche con il Files.lines(FileP), ma ho sempre la stessa eccezione riportata sopra.
Potreste darmi qualche suggerimento, perchè ho cercato online ma non riesco ad adottare le varie soluzioni che trovo.
--- i due messaggi sono stati uniti ---
Aggiungo che il metodo riscritto in questo modo funziona correttamente, cioè mi importa e stampa a video il contenuto del file di testo.
public void carica2(String percorso){
try(BufferedReader in = new BufferedReader(new FileReader(percorso)))
{ List<String> listaFlusso = in.lines()
.map(linea -> linea)
.collect(toList());
for(String s: listaFlusso){
System.out.println(s);
}
} catch (Exception e)
{e.printStackTrace();
}
}
Se qualcuno può darmi qualche suggerimento su come usare correttamente sia l'interfaccia Path, e la classe Files.
Grazie in anticipo.
Sostanzialmente ho due classi, la Main e la classe che gestisce l'importazione del file+stampa a video. Alla classe che effettua l'importazione viene passata dal main il percorso e niente altro.
L'eccezione è la seguente:
Exception in thread "main" java.io.UncheckedIOException: java.nio.charset.MalformedInputException: Input length = 1
Mentre il codice, che riporto qui sotto della classe. gestisce l'importazione del file e la stampa a video. L'intento è quello di inserire in una List di stringhe il contenuto del file e poi stamparlo a video.
public class Main {
public static void main(String[] args) {
String percorso="D:\\flussoCaratteri.txt";
ImportExport ie=new ImportExport();
ie.carica1(percorso);
}
}
public class ImportExport {
public void carica1(String percorso){
Path fileP=Paths.get(percorso);
List<String> linee=null;
try{
linee=Files.readAllLines(fileP);
System.out.println(linee);
}catch(IOException e){
e.getMessage();
}
}
}
Ho provato anche con il Files.lines(FileP), ma ho sempre la stessa eccezione riportata sopra.
Potreste darmi qualche suggerimento, perchè ho cercato online ma non riesco ad adottare le varie soluzioni che trovo.
--- i due messaggi sono stati uniti ---
Aggiungo che il metodo riscritto in questo modo funziona correttamente, cioè mi importa e stampa a video il contenuto del file di testo.
public void carica2(String percorso){
try(BufferedReader in = new BufferedReader(new FileReader(percorso)))
{ List<String> listaFlusso = in.lines()
.map(linea -> linea)
.collect(toList());
for(String s: listaFlusso){
System.out.println(s);
}
} catch (Exception e)
{e.printStackTrace();
}
}
Se qualcuno può darmi qualche suggerimento su come usare correttamente sia l'interfaccia Path, e la classe Files.
Grazie in anticipo.
Ultima modifica: