Εισαγωγή βιβλιοθηκών import java.applet.applet; import java.awt.graphics; ή import java.*.*

Σχετικά έγγραφα
Αντικειµενοστρεφής Προγραµµατισµός

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Αντικειμενοστρεφής Προγραμματισμός

Βασικά Στοιχεία της Java

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Βασικά Στοιχεία της Java

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

Οντοκεντρικός Προγραμματισμός

Αρχεία και Ρεύματα. Αρχεία

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

HelloApplet. Παύλος Εφραιμίδης Java Applets 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

10.1 Γενικά για τα streams

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Προγραµµατισµός ΙΙ Java 2

6. Εξαιρέσεις στη γλώσσα Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

ΕΠΛ 012. JavaScripts

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

Mεταβλητές (variables) και Σταθερές (constants)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

Δομημένος Προγραμματισμός (ΤΛ1006)

Εισαγωγή στον Προγραμματισμό

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

Προγραµµατισµός ΙΙ Java 2

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Οντοκεντρικός Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

Πανεπιστήµιο Πειραιά Τµήµα Εκπαιδευτικής Τεχνολογίας και Ψηφιακών Συστηµάτων. Εισαγωγή στη γλώσσα προγραµµατισµού. Java. Βασίλειος Βεσκούκης

Δομές ελέγχου ροής προγράμματος

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

32-bit signed υποδιαστολής) Double διπλής ακρίβειας 64-bit signed Char unicode character 16-bit Boolean Boolean true or false

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Βασικά της γλώσσας JAVA

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Κλάσεις και Αντικείµενα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 4/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 1/4/2008

Εισαγωγή στον Προγ/μό Η/Υ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Οντοκεντρικός Προγραμματισμός

Το παρακάτω πρόγραμμα ορίζει δυο κλάσεις την SimpleThread και την TwoThreadsTest:

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΗ JAVA ΤΕΛΕΣΤΕΣ - ΜΕΤΑΒΛΗΤΕΣ

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #16

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Δεδομένα, τελεστές, είσοδος/έξοδος

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Week 9: Input / Output

Υποστηρικτικό υλικό Σημειώσεις

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

2. Προσδιοριστές, δεσμευμένες λέξεις και τύποι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

Οντοκεντρικός Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός

Java sessions. Part 1 - Βασικά έννοιες - μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Προγραμματισμός Η/Υ (ΤΛ2007 )

Μάθημα 2 [10/11/2015]

Εισαγωγή στον Προγραμματισμό

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Ευφυείς Τεχνολογίες ----Πράκτορες

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Είσοδος Έξοδος (Input Output) Εξαιρέσεις (Exceptions)

ηµιουργία ιαλογικών Προγραµµάτων για το Web

Γενικά (για τις γραπτές εξετάσεις)

Συντακτικά λάθη, λάθη εκτέλεσης, Λογικά λάθη

Transcript:

Απλό πρόγραμμα class hello public static void main (String args[]) System.out.println( Hello World!!! ); Σώζουμε ως hello.java. Σε dos πηγαίνουμε στο φάκελο και γράφουμε javac hello.java Δημιουργείται το hello.class. Γράφουμε java hello και εκτελείται το πρόγραμμα. Εισαγωγή βιβλιοθηκών import java.applet.applet; import java.awt.graphics; ή import java.*.* Τύποι Δεδομένων Byte 8 bit Short 16 bit Int 32 bit Long 64 bit Float 4 byte Ακρίβεια: 7 ψηφία Double 8 byte Ακρίβεια: 18 ψηφία x = 10 x = 10 x = x+y y = x++ y = ++x x += y, x /= y y = 10, x = 11 y = 11, x = 11 x -= y, x *= y Λογικές Τιμές boolean state; state = true; ή boolean state = true; Τελεστές σύγκρισης = = Ίσον!= Διάφορο < Μικρότερο <= Μικρότερο ή ίσο > Μεγαλύτερο >= Μεγαλύτερο ή ίσο Λογικοί Τελεστές Τελεστές bitwise AND && bitwise AND & OR (τουλ.μια αληθής) bitwise OR ^ NOT! συμπλήρωμα ~ XOR ^ (μια και μόνο μια αληθής) bitwise XOR Ακολουθίες διαφυγής \b backspace \r carriage return \t Tab \" " \n line feed \' ', \\ \ \f form feed \uxxxx Unicode character Μετατροπή τύπου δεδομένων double x=3,31 y = (int)x; y = 3

Συναρτήσεις abs(var) Absolute Value ceil(var) Στρογ.στο μεγαλύτερο ακέραιο cos(var) cosine exp(var) e^x floor(var) Στρογ. στο μικρότερο ακέραιο log(var) log (base e) max(var1,var2) Μέγιστο min(var1,var2) Ελάχιστο pow(var1,var2) var1^var2 round(var) Στρογ. στον κοντινότερο ακέραιο tan(var) tangent random() random 0<=x<=1 sin(var) sinus sqrt(var) square root Τις χρησιμοποιούμε γράφοντας : Math.abs(var) π.χ. math.pi Μετατροπή αλφαριθμητικού σε αριθμό int i = Integer.valueOf("str1").intValue(); long l=long.valueof("str1").longvalue(); Εισαγωγή δεδομένων από πληκτρολόγιο int x; x = Integer.valueOf(args[0]).intValue(); Η δομή if O όρος else if (condition) if (condition)...;...; else...;...; Τριαδικός τελεστής?: if (a>b) max=a; max = a>b? a:b; else max = b; Δομή Switch Ο βρόχος for Switch (var) for (c=0;c<10;c++)...; case 1: Ο βρόχος while...; while(condition) break;...;...;... case n: Ο βρόχος do-while...; do break;...; while (condition); default: Η εντολή continue...; if (condition) break; continue; τότε δεν εκτελείται το περιεχόμενο του βρόχου Το break το χρησιμοποιούμε για να βγούμε από ένα βρόχο Μέθοδος Επιστρέφει αποτέλεσμα ή στο κυρίως πρόγραμμα με την εντολή return...; Δήλωση ενός πίνακα float []array1; int array1[];

Καταχώρηση πίνακα Array1 = new int[5] Απόδοση τιμών C[0]= 3;...; system.out.println (C[2]) int num[]=1,2,3,4,5,6,7; system.out.println (num.length) float []numbers1=numbers; M = new int [4][5]; Ταξινόμηση Ταξινόμηση με επιλογή Μέθοδος της φυσαλίδας Αλφαριθμητικές μεταβλητές str1 + str2 Ισότητα strings str1.equals(str2) str1.equalsignorecase(str2) str2=str1.tolowercase() str2=str1.touppercase() String substring(int start, int end); str1.length Μήκος str1.charat(4); str2=str1.replace('a','b') Εντοπισμός χαρακτήρων int index=0; index=str1.indexof('a'); index=str1.lastindexof('a'); int index=0; int index=0; index=str1.indexof('a', 4); index=str1.lastindexof('a', 4); int x=12; String str1="123" string str1=string.valueof(x); int x=integer.parseint(str1); StringBuffer sbf=new StringBuffer(40); sbf.length(); sbf.capacity(); sbf.append("nikolas"); sbf.insert(8,'w'); sbf.setcharat(9,'a'); sbf.reverse(); StringBuffer sbf=new StringBuffer("Nikolas") String str1=sbf.tostring();

Ορισμός μιας κλάσης Class MyClass Για να ορίσουμε μια μεταβλητή κλάσης που δημιουργείται ακόμα και αν δεν έχει δημιουργηθεί κανένα αντικείμενο ακόμα, γράφουμε static int count = 0; Για να ορίσουμε μια μεταβλητή στιγμιότυπου που δημιουργείται με κάθε αντικείμενο γράφουμε int x; Αντίστοιχα και για τις μεθόδους κλάσης και στιγμιότυπου. Αν μια μέθοδος δεν επιστρέφει τιμή τότε γράφουμε void αλλιώς τον τύπο της τιμής που επιστρέφει και βάζουμε return. Η μεταβλητή this αναφέρεται στο τρέχον αντικείμενο π.χ. this.radius Αναφορά : Circle troxos = new Circle (1,2,3); Πακέτα : import java.util.date; Date thisdate = new Date(); ή java.util.date thisdate = new java.util.date(); Τυπικά Πακέτα Java java.lang java.util java.sql java.io java.awt.peer java.beans java.awt (GUI) java.security java.rmi Απομακρυσμένες Μέθοδοι java.awt.event java.awt.image javax.swing Νέο GUI java.applet java.net Δήλωση κλάσης σε πακέτο package Geometry; public class Circle Import geometry.circle; Δυνατότητα Προσπέλασης public protected private Χωρίς προσδιοριστή Από την ίδια κλάση ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ Από τις κλάσεις του ίδιου πακέτου ΝΑΙ ΝΑΙ ΟΧΙ ΝΑΙ Από οποιαδήποτε κλάση εκτός του πακέτου όπου ανήκει η κλάση ΝΑΙ ΟΧΙ ΟΧΙ ΟΧΙ Από μια υποκλάση του ίδιου πακέτου ΝΑΙ ΝΑΙ ΟΧΙ ΝΑΙ Από μια υποκλάση έξω από το πακέτο όπου ανήκει η κλάση ΝΑΙ ΝΑΙ ΟΧΙ ΟΧΙ Για να δηλώσουμε ότι η κλάση Car είναι υποκλάση της motorvehicle γράφουμε : Class Car extends motorvehicle Η λέξη super καλεί μέλη της υπερκλάσης. H super() καλεί τον κατα/στή και η super.counter() την counter. Μια τελική κλάση δεν μπορεί να είναι υπερκλάση και τη δηλώνουμε : public final class MyClass Ομοίως και για μια μέθοδο που τότε δεν αλλάζει και για μια μεταβλητή που καθίσταται σταθερά. Μια αφηρημένη κλάση τη δηλώνουμε με public abstract getname(); Public interface LengthConversion Ορίζουμε μια διασύνδεση. Public classlengthmethods implements LengthConversion Καλούμε μια διασύνδεση.

*Αν μια κλάση που υλοποιεί τις μεθόδους μιας διασύνδεσης δεν τις υλοποιεί όλες, πρέπει να δηλωθεί ως αφηρημένη. Applets Import java.applet.applet; Import java.awt.graphics ; Public class Hello extends Applet String namel Public void init() name = getparameter( message ); name= Hello + name; pubic void paint (Grapics g) g.drawstring (name, 30, 40); Κώδικας HTML <HTML> <HEAD> <TITLE> mplamplampla </TITLE> </HEAD> <BODY> <applet code = Hello.class width = 300 height = 200> <param name = message value = Someone > </applet> </BODY> </HTML> Άλλες εντολές στα applet : start(), stop(), destroy(), paint(graphics g), getappletinfo(),string [][] getparameterinfo() Exceptions Η εξαίρεση είναι ένα αντικείμενο της υποκλάσης java.lang.throwable και δημιουργείται όταν εμφανίζεται στο πρόγραμμα μια μη κανονική κατάσταση. Για να δημιουργήσουμε μια δική μας εξαίρεση : class MyException extends Exception MyException (String message) super(message); Δήλωση ότι η μέθοδος μπορεί να δημιουργήσει εξαίρεση : double mymethod() throws EOFException, IOException //κώδικας Για να συλλάβουμε μια εξαίρεση, βάζουμε τον επικίνδυνο κώδικα σε ένα try block try και ακολουθεί ένα catch block : catch(τύπος_εξαίρεσης e) Ακόμα μπορούμε να βάλουμε ένα finally block στο τέλος του κώδικα που "συμμαζεύει" τον κώδικα και εκτελείται πάντα εκτός και αν τερματιστεί το πρόγραμμα μέσα στο try ή το catch.

Αν θέλουμε, μπορούμε να δημιουργήσουμε μια δική μας εξαίρεση : π.χ. catch (MyZeroDivideException zde) System.err.println("Exception1 : " + zde.getmessage()); public class MyZeroDivideException extends ArithmeticException public MyZeroDivideException() super ("Diairesi me to 0"); Input / Output Για να διαβάσουμε ή να γράψουμε πληροφορίες, χρησιμοποιούμε ένα Stream. Υπάρχουν 2 είδη. Τα character Streams που είναι 16-bit και είναι τα Reader και Writer και τα Byte Streams που είναι 8-bit και είναι τα Input Stream και Output Stream. Οι εντολές είναι : int read() int write(int c) int read(char cbuf[]) int write(char cbuf[]) int read(char cbuf,int offset,intlength) int write(char cbuf,int offset,intlength) και αντίστοιχα έχουμε αντί για char με byte. import java.io.*; public class Copy public static void main(string[] args) throws IOException File inputfile = new File("farrago.txt"); File outputfile = new File("outagain.txt"); FileReader in = new FileReader(inputFile); FileWriter out = new FileWriter(outputFile); int c; while ((c = in.read())!= -1) out.write(c); in.close(); out.close(); Αντί για FileReader μπορούμε να έχουμε και FileInputStream κλπ. Για να κάνουμε wrap ένα Stream FileOutputStream fout = new FileOutputStream ("C:\...\test.txt"); BufferedOutputStream bos = new BufferedOutputStream (fout); DataOutputStream d = new DataOutputStream (bos);