I File in Java: differenze tra le versioni
(→Introduzione) |
(→Lettura e scrittura di file di testo) |
||
Riga 7: | Riga 7: | ||
Per leggere dati da una sorgente bisogna collegarla a uno stream, dove leggere le informazioni in modo ordinato. Analogamente, per scrivere dati su una destinazione, bisogna collegarla a uno stream in cui inserire i dati in modo sequenziale. All’inizio di queste operazioni occorre aprire lo stream e alla fine occorre chiuderlo. | Per leggere dati da una sorgente bisogna collegarla a uno stream, dove leggere le informazioni in modo ordinato. Analogamente, per scrivere dati su una destinazione, bisogna collegarla a uno stream in cui inserire i dati in modo sequenziale. All’inizio di queste operazioni occorre aprire lo stream e alla fine occorre chiuderlo. | ||
− | == Lettura e | + | == Lettura e Scrittura su File == |
− | + | <syntaxhighlight lang="java" line> | |
− | + | import java.io.BufferedReader; | |
− | + | import java.io.DataOutputStream; | |
− | + | import java.io.File; | |
− | + | import java.io.FileInputStream; | |
− | + | import java.io.FileNotFoundException; | |
− | + | import java.io.FileOutputStream; | |
+ | import java.io.IOException; | ||
+ | import java.io.InputStreamReader; | ||
+ | import java.io.PrintWriter; | ||
+ | |||
+ | public class File_Test { | ||
+ | |||
+ | String fileName = "ciao.txt"; | ||
+ | |||
+ | public void printFile() { | ||
+ | try { | ||
+ | PrintWriter output = new PrintWriter(fileName); | ||
+ | output.write("casa"); | ||
+ | output.close(); | ||
+ | } catch (FileNotFoundException e) { | ||
+ | // TODO Auto-generated catch block | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public String readFromFile() { | ||
+ | String line = null; | ||
+ | try { | ||
+ | InputStreamReader console = new InputStreamReader(System.in); | ||
+ | InputStreamReader file = new InputStreamReader(new FileInputStream(new File("ciao.txt"))); | ||
+ | |||
+ | BufferedReader reader = new BufferedReader(console); | ||
+ | line = reader.readLine(); | ||
+ | reader.close(); | ||
+ | console.close(); | ||
+ | |||
+ | |||
+ | } catch (IOException e) { | ||
+ | // TODO Auto-generated catch block | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | return line; | ||
+ | } | ||
+ | |||
+ | public void writeBinaryFile() { | ||
+ | int[] v = new int[] {1000,2,3,4,5,6,7,8,9,10}; | ||
+ | try { | ||
+ | FileOutputStream file = new FileOutputStream(new File("binario.dat")); | ||
+ | DataOutputStream stream = new DataOutputStream(file); | ||
+ | for (int i = 0; i < 10; i++) { | ||
+ | stream.writeInt(v[i]); | ||
+ | } | ||
+ | //stream.close(); | ||
+ | file.close(); | ||
+ | } catch (Exception e) { | ||
+ | // TODO Auto-generated catch block | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </syntaxhighlight> |
Versione delle 10:20, 19 mag 2017
Introduzione
Java fornisce classi e metodi per scrivere e leggere dati da files; le tipologie di files che si possono trovare sono sostanzialmente due:
- file di testo;
- file binari.
Grazie alle classi fornite da Java, la gestione dell'input/output da file è indipendente dalla piattaforma su cui il programma verrà eseguito; inoltre, le operazioni di I/O sono basate sul concetto di flusso (stream), ovvero una sequenza ordinata di dati che ha una sorgente e una destinazione.
Per leggere dati da una sorgente bisogna collegarla a uno stream, dove leggere le informazioni in modo ordinato. Analogamente, per scrivere dati su una destinazione, bisogna collegarla a uno stream in cui inserire i dati in modo sequenziale. All’inizio di queste operazioni occorre aprire lo stream e alla fine occorre chiuderlo.
Lettura e Scrittura su File
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class File_Test {
String fileName = "ciao.txt";
public void printFile() {
try {
PrintWriter output = new PrintWriter(fileName);
output.write("casa");
output.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String readFromFile() {
String line = null;
try {
InputStreamReader console = new InputStreamReader(System.in);
InputStreamReader file = new InputStreamReader(new FileInputStream(new File("ciao.txt")));
BufferedReader reader = new BufferedReader(console);
line = reader.readLine();
reader.close();
console.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return line;
}
public void writeBinaryFile() {
int[] v = new int[] {1000,2,3,4,5,6,7,8,9,10};
try {
FileOutputStream file = new FileOutputStream(new File("binario.dat"));
DataOutputStream stream = new DataOutputStream(file);
for (int i = 0; i < 10; i++) {
stream.writeInt(v[i]);
}
//stream.close();
file.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}