Include gli standard input, output ed error stream, le propieta del sistema ed altre utilita varie (es ora, etc.)
Esempio: | |
System.out | System.out.println("Ciao"); |
System.getProperty(argomento) | System.getProperty("user.name") |
Standard input System.in = usato per input del programma
Standard output System.out = usato per loutput del programma
Standard error System.err = usato per visualizzare i messaggi di errore
La classe file puó rappresentare il nome di un file o l'intera directory (es. File path = new File(".");)
Il metodo list(), fornisce tutti i file (es. list = path.list();)
Linterfaccia FilenameFilter fornisce un solo metodo accept(File dir, String name) che ritorna true se il file corrisponde ai parametri indicati in name
Altri metodi:
fileData(File) = Visualizza informazioni sul file o la directory passata come argomento
renameTo() = Rinomina o sposta un file
mkdirs() = crea una directory
Esempio1 |
//: TestFile.java import java.io.*; public class TestFile { public static void main(String args[]) {String[] lista;File path;path = new File(".");lista = path.list();// Stampa del contenuto dell'array lista for(int i=0 ; i<lista.length ; i++) { } class Filtro implements FilenameFilter {
} |
Esempio2 |
//:ListJava.java import java.io.*; public class ListJava {
} class Filtro implements FilenameFilter {
} |
La libreria java per IO edivisa in 2 parti , input e output, che derivano per ereditarieta da InputStream (che fornisce il metodo read()) e OutputStream (che fornisce il metodo write()).
Tipi di Input/Output stream
Tipo | Input | Output |
Stream | InputStreamReader | OutputStreamReader |
Array di byte | CharArrayReader | CharArrayWriter |
Oggetto stringa | StringReader | StringWriter |
File | FileReader | FileFriter |
"piped" | PipedReader | PipedWriter |
Esempio: |
//: TestInput import java.io.*; public class TestInput { public static void main(String args[]) { try { BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); System.out.println("Come ti chiami ?"); System.out.println("Ciao "+in.readLine()); } catch (IOException e) { } } } |
La classe StreamTokenizer e usata per interrompere un InputStream in una sequenza "token" (gettoni), che sono porzioni di testo delimitati da un carattere prescelto.
StreamTokenizer st = new StreamTokenizer(File);
st.ttype = restituisce una descrizione del token:
st.EOL = end of file
st.TT_NUMBER = numero
st.TT_WORD = stringa o un carattere
Come StreamTokenizer limitato a stringhe di caratteri
I token saranno costituiti da tutti i caratteri separati da tab, spazi o nuove linee.
Es. "where is my cat?" = "where" "is" "my" "cat?"
Metodo next() = restituisce il nuovo token.
Esempio1 |
//:TestStringT.java import java.util.*; public class TestStringT { public static void main(String args[]) { StringTokenizer st; String frase = "testo di prova"; st = new StringTokenizer(frase); while(st.hasMoreTokens()) { String s = st.nextToken(); System.out.println(s); } } } |
Esempio2 |
//:TestStringT.java import java.util.*; import java.io.*; public class TestStringT2 { public static void main(String args[]) { String frase = new String(""); StringTokenizer st; try { BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); System.out.println("Inserisci una frase:"); frase = in.readLine(); } catch (IOException e) { } st = new StringTokenizer(frase); while(st.hasMoreTokens()) { String s = st.nextToken(); System.out.println(s); } } } |
Java 1.1 fornisce classi per leggere e scrivere in formato compresso, che derivano dalle classi Input/OutputStream
Classi | Metodi | Note |
CheckedInputStream | getCheckSum() | |
CheckedOutputStream | getCheckSum() | |
DeflatedOutputStream | Classe base compressione | |
ZipOutputStream | DeflaterOutputStream che comprime i dati in formato .zip | |
GzipOutputStream | DeflaterOutputStream che comprime i dati in formato .gzip | |
InflaterInputStream | Classe base per decompressione | |
ZipInputStream | ||
GZipInputStream |
Es.
BufferedReader in = new BufferedReader(new GzipOutputStreamer(new FileOutputStream("test.gz")));
Ogni oggetto che implementa linterfaccia Serializable puo essere incanalato in una sequenza di byte e successivamente recuperato nelloggetto originale.
Linterfaccia Serializable non ha metodi.
Per serializzare un oggetto basta creare un oggetto OutputStream (es. FileOutputStream) dentro un ObjectOutputStream. Con il metodo writeObject() loggetto sara serializzato nellOutputStream.
Il processo inverso viene realizzato inserendo un InputStream dentro un ObjectInputStream e chiamando readObject().
Linterfaccia Externalizable (ha 2 metodi: writeExternal() e readExternal() che sono automaticamente chiamati) e usata come estensione dellinterfaccia Serializable per serializzazioni particolari come porzioni di oggetto o per creare un nuovo oggetto dopo che e stato serializzato.