[ 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]