[ IT ] [ Inet prog ] Nyheter Introduktion Java & OOP Applets HTML Nätprogrammering JavaScript PHP &MySQL Servlets JSP XML Java: strömmar Java: behållare I Java läser och skriver man filer med hjälp av strömmar . Strömmar används också för annan kommunikation, med t.ex. andra datorer i ett nätverk: i Java är nätverkskommunikation i princip inte svårare än filhantering. I Java används ofta speciella klasser (inte fält) för att hantera objektsamlingar. Det finns flera olika typer av behållarklasser men de har en gemensamt gränssnitt. T.ex. finns en klass ArrayList och en LinkedList som båda implementerar gränssnittet Collection. Programmet nedan använder båda typerna av lista för att läsa kommandoradsparametrarna och ersätta alla gemener med versaler i varje ord. Det finns två sorters strömmar: byte-strömmar (innehåller ordet Stream i namnet) och char-strömmar (innehåller ordet Reader eller Writer i namnet) import java.io.*; // Ett program som kopierar en fil m.h.a. en byteström class FileCopy { public static void main( String[] args ) { if (args.length!=2) { System.out.println("Usage: java FileCopy" + " infile outfile"); System.exit(0); } FileInputStream fin = null; FileOutputStream fout = null; try { fin = new FileInputStream( args[0] ); } catch (FileNotFoundException fne) { System.out.println("Kunde inte öppna " + args[0] ); System.exit(0); } try { fout = new FileOutputStream( args[1] ); } catch (FileNotFoundException fne) { System.out.println("Kunde inte öppna " + args[1] ); System.exit(0); } int i; try { while ( (i = fin.read()) != -1 ) { fout.write( (byte) i); } } catch ( IOException ioe ) { System.out.println("Operationen misslyckades"); System.exit(0); } } Kursmaterial Examination Index <-- --> } import java.util.*; import java.text.*; class Capify { public static void main(String args[]) { Collection l = new ArrayList(); for (int i=0; i<args.length; i++) l.add(args[i]); Collection l1 = capify(l); System.out.println(l1); } static Collection capify (Collection c) { Collection r = new LinkedList(); for(Iterator i = c.iterator(); i.hasNext(); ) { String s = (String)i.next(); r.add(s.toUpperCase()); } return r; } } Lägg märke till det gemensamma gränssnittet (vi ser inte mycket av det här men...) och användandet av klassen Iterator för att loopa över behållaren. Kommdoraden java Capify Hej jag heter Bosse ger utskriften [HEJ, JAG, HETER, BOSSE]