Michael Feldman
Esempi Java - File e directory
E' forse utile ricordare che la classe java.io.File
viene utilizzata sia per i file sia per le directory. Per stabilire se un oggetto di tipo File
e' una directory occorre verificarlo con una chiamata a isDirectory(File file)
:
File home = new File("home_dir"); boolean dir = home.isDirectory();
Sommario
- Scrivere su di un file di testo
- Leggere un file di testo
- Cercare ed elaborare i file contenuti in directory annidate
- Copiare un file
Scrivere su di un file di testo
[Tratto da www.exampledepot.com]Se il file non esiste viene creato automaticamente, altrimenti viene sovrascritto.
import java.io.*; ... try { BufferedWriter out = new BufferedWriter(new FileWriter("nomeFile.txt")); out.write("Testo"); out.close(); } catch (IOException e) { e.printStackTrace(); }
Se invece si vuole appendere alla fine di un file esistente:
import java.io.*; ... try { BufferedWriter out = new BufferedWriter(new FileWriter("nomeFile.txt"), true); out.write("Testo"); out.close(); } catch (IOException e) { e.printStackTrace(); }
Leggere un file di testo
[Tratto da www.exampledepot.com]
Il metodo process(File file)
deve ovviamente essere implementato per svolgere gli scopi richiesti.
import java.io.*; ... try { BufferedReader in = new BufferedReader(new FileReader("nomeFile.txt")); String str; while ((str = in.readLine()) != null) { process(str); } in.close(); } catch (IOException e) { }
Cercare ed elaborare i file contenuti in directory annidate
[Tratto da www.exampledepot.com]
Questo esempio utilizza la ricorsione per scorrere tutti i file presenti in tutte le sottodirectory di una directory scelta.
Il metodo process(File file)
deve ovviamente essere implementato per svolgere gli scopi richiesti.
import java.io.*; ... public static void visitAllFiles(File dir) { if (dir.isDirectory()) { String[] children = dir.list(); for (int i=0; i<children.length; i++) { visitAllFiles(new File(dir, children[i])); } } else { process(dir); } }
Copiare un file
[Tratto da www.exampledepot.com]Viene semplicemente letto uno stream associato al file sorgente e scritto su di uno stream associato al file destinazione.
import java.io.*; ... void copy(File src, File dst) throws IOException { InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dst); byte[] buf = new byte[1024]; int len; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } in.close(); out.close(); }