Package Java - Io: Classes
Package Java - Io: Classes
Package java.io
Classes class File nal class FileDescriptor abstract class InputStream class ByteArrayInputStream class FileInputStream class FilterInputStream class BufferedInputStream class DataInputStream (interface DataInput) class LineNumberInputStream class PushbackInputStream class PipedInputStream class SequenceInputStream class StringBufferInputStream abstract class OutputStream class ByteArrayOutputStream class FileOutputStream class FilterOutputStream class BufferedOutputStream class DataOutputStream (interface DataOutput) class PrintStream class PipedOutputStream class RandomAccessFile (interfaces DataInput,DataOutput) class StreamTokenizer
Interfaces Interface DataInput Interface DataOutput Interface FilenameFilter Exceptions 2.27 Class EOFException 2.28 Class FileNotFoundException 2.29 Class IOException 2.30 Class InterruptedIOException 2.31 Class UTFDataFormatException
A. Le Grand
Universit de Genve
Entres-sorties en Java
Constructeurs
chiers dentre FileInputStream fis=new FileInputStream("toto"); DataInputStream d=new DataInputStream(fis); chiers de sortie File f= new File(toto); FileOutputStream fos=new FileInputStream(f); DataOutputStream d=new DataOutputStream(fos);
ots standards
public final class java.lang.System extends java.lang.Object{ // Fields public static PrintStream err; public static InputStream in; public static PrintStream out; // Methods public static void arraycopy(Object src, int src_pos, Object dst, int dst_pos, int length); public static long currentTimeMillis(); public public public public public public public public public public public } static static static static static static static static static static static void exit(int status); void gc(); Properties getProperties(); String getProperty(String key); String getProperty(String key, String def); SecurityManager getSecurityManager(); void load(String filename); void loadLibrary(String libname); void runFinalization(); void setProperties(Properties props); void setSecurityManager(SecurityManager s);
Universit de Genve
Entres-sorties en Java
2 exemples dexcution
n de saisie avec CTRL-D ou CTRL-Z n de saisie avec CR
>java lecture >java lecture saisie :ABCD3 car. sont en attente. saisie :ABCD int lu :65 4car. sont en attente. car. lu :A int lu :65 car. lu :A
A. Le Grand
Universit de Genve
Entres-sorties en Java
A. Le Grand
Universit de Genve
Entres-sorties en Java
variables denvironnement
programme import java.io.*; import java.util.Properties; public class demoProperties { static public void main(String[] args) {Properties p=System.getProperties(); p.list(System.out);} } exemple dexcution : -- listing properties -java.home=/unige/java/SUNWjws/JDK/bin/.. java.version=1.0.2ss:08/01/96-23:00 file.separator=/ line.separator= java.vendor=Sun Microsystems Inc. user.name=legrand os.arch=sparc os.name=Solaris java.vendor.url=http://www.sun.com/ user.dir=/user/u3/legrand java.class.path=.:/unige/java/SUNWjws/JDK/bin/../clas... java.class.version=45.3 os.version=2.x path.separator=:user.home=/user/u3/legrand accs au rpertoire de travail import java.io.*; public class getWorkingDir { static public void main(String[] args) {System.out.println(System.getProperty("user.dir"));} }
A. Le Grand
Universit de Genve
Entres-sorties en Java
classe File
public class java.io.File extends java.lang.Object { // Fields public final static String pathSeparator; public final static char pathSeparatorChar; public final static String separator; public final static char separatorChar; // Constructors public File(File dir, String name); public File(String path); public File(String path, String name); // Methods public boolean canRead(); public boolean canWrite(); public boolean delete(); public boolean equals(Object obj); public boolean exists(); public String getAbsolutePath(); public String getName(); public String getParent(); public String getPath(); public int hashCode(); public boolean isAbsolute(); public boolean isDirectory(); public boolean isFile(); public long lastModified(); public long length(); public String[] list(); public String[] list(FilenameFilter filter); public boolean mkdir(); public boolean mkdirs(); public boolean renameTo(File dest); public String toString(); }
A. Le Grand
Universit de Genve
Entres-sorties en Java
import java.io.*; public abstract class Fichier extends File{ public Fichier(String s) throws NullPointerException {super(s);} public String RepertoireDe() {String NomComplet=this.getAbsolutePath(); return NomComplet.substring(0, NomComplet.lastIndexOf(File.separator)); } } import java.io.*; public class FichierLecture extends Fichier{ public FichierLecture(String s) throws IOException, NullPointerException {super(s); if (!this.exists() || !this.isFile()) throw new IOException( this.getName() + ": fichier inexistant."); if (!this.canRead()) throw new IOException( this.getName() + ": fichier non lisible."); } }
A. Le Grand
Universit de Genve
Entres-sorties en Java
classe Repertoire
import java.io.*; public abstract class Repertoire extends File { private static final int lim=20; public Repertoire(String s) throws IOException {super(s);} private void afficheUnFichier(String ref) {File unElement= new File(this,ref); System.out.print((unElement.canRead())? "L":" "); System.out.print((unElement.canWrite())? "E":" "); System.out.print(" "+ref); if (unElement.isDirectory()) System.out.println("\t"+"repertoire"); else if (unElement.canRead()) System.out.println("\t"+unElement.length()); else System.err.println(" ????"); } public void afficheListe(String[] fichiers) {System.out.println(this.getName()); if (fichiers.length==0) {System.out.println("aucun fichier"); return;} File unElement; for(int i=0;i<fichiers.length;i++) {if ((i>0) && ((i % lim)==0)) {System.out.println("<retour> pour continuer"); try {System.in.read();} catch (IOException e){}} this.afficheUnFichier(fichiers[i]); }; System.out.println(" "+fichiers.length+ " fichiers"); } }
A. Le Grand
Universit de Genve
Entres-sorties en Java
classe RepertoireLecture
import java.io.*; public class RepertoireLecture extends Repertoire { public RepertoireLecture(String s) throws IOException {super(s); if (!this.exists() || !this.isDirectory()) throw new IOException( this.getName() + ": repertoire inexistant."); if (!this.canRead()) throw new IOException( this.getName() + ": repertoire non lisible."); } }
A. Le Grand
Universit de Genve
Entres-sorties en Java
A. Le Grand
Universit de Genve
10
Entres-sorties en Java
copie de chiers
import java.io.*; public class CopieurFichier { public static void copie(String src,String dest) {FileInputStream s=null; FileOutputStream d=null; try { FichierLecture Source= new FichierLecture(src); FichierEcriture Destination=new FichierEcriture(dest); s=new FileInputStream(Source); d=new FileOutputStream(Destination); byte[] tampon=new byte[1024]; int lu=0; do {lu=s.read(tampon); if (lu!=-1) d.write(tampon,0,lu);} while (lu!=-1); } // try catch (IOException e) {System.err.println(e.getMessage());} finally { if (s!=null) {try {s.close();} catch (IOException e){}} if (d!=null) {try {d.close();} catch (IOException e){}} } // finally } // copie public static void main(String args[]) {if (args.length!=2) {System.err.println("Usage: java CopieurFichier <src> <dest>"); return;} copie(args[0],args[1]); } }
A. Le Grand
Universit de Genve
11
Entres-sorties en Java
A. Le Grand
Universit de Genve
12
Entres-sorties en Java
A. Le Grand
Universit de Genve
13
Entres-sorties en Java
compteur de mots
import java.io.*; public class compteur { public static void main(String args[]){ int nNombres=0; int nMots=0; FileInputStream fis=null; StreamTokenizer st=null; try {fis=new FileInputStream(args[0]); st=new StreamTokenizer(fis);} catch (IOException e) {System.out.println( "usage: java compteur <filename>"); try {fis.close();} catch (IOException e1){} System.exit(1);} // fin de ligne est un separateur dunites syntaxiques st.eolIsSignificant(true); // _ fait partie des mots st.wordChars((int) '_',(int)'_'); // . ne fait partie daucune unit syntaxique st.ordinaryChar((int) '.'); try while (st.nextToken()!=st.TT_EOF) {if (st.ttype== st.TT_WORD) {System.out.println(st.sval); nMots++;} if (st.ttype== st.TT_NUMBER) {System.out.println(st.nval);nNombres++;} } // while catch (IOException e) {System.out.println("error when reading.");} finally {try {fis.close();} catch (IOException e1) {}} System.out.println("mots: "+ nMots); System.out.println("nombres: "+ nNombres); } }
A. Le Grand
Universit de Genve
14