sisendisse. Toru koosneb kahest otsast - toru sisendvoost ja toru väljundvoost, mida reeglina kasutavad erinevad lõimed. Java vahendid tööks voogude, failide ja torudega Klassid paketis java.io (mittetäielik loend) IOException ( <- Exception <- Throwable ) EOFException FileNotFoundException InterruptedIOException ...... File FileDescriptor InputStream ByteArrayInputStream FileInputStream FilterInputStream BufferedInputStream DataInputStream PipedInputStream StringBufferInputStream OutputStream ByteArrayOutputStream FileOutputStream FilterOutputStream BufferedOutputStream DataOutputStream PrintStream PipedOutputStream RandomAccessFile Reader BufferedReader CharArrayReader FilterReader InputStreamReader FileReader PipedReader StringReader StreamTokenizer Writer BufferedWriter CharArrayWriter FilterWriter OutputStreamWriter FileWriter
Sisend- ja väljundvoog Programmi mõttes · sisendvoog (input stream) · väljundvoog (output stream) Väljundvoog võib viia infot suvalisele välisseadmele (fail, kõvaketas, konsool, ...), mis toetab baidijadade vastuvõtmist. Sisendvoo allikaks on tüüpiliselt klaviatuur, fail, baidimassiiv, ... Sisend- ja väljundvoo muudab efektiivsemaks puhverdamine Baidivoog 1. abstraktsed klassid InputStream, OutputStream 2. klassi InputStream alamklasse FileInputStream, ByteArrayInputStream, SequenceInputStream 3. klassi OutputStream alamklasse FileOutputStream, DataOutputStream, CipherOutputStream, FilterOutputStream, PrintStream Märgivoog 1. abstraktsed klassid Reader, Writer 2. klassi Reader alamklasse BufferedReader, InputStreamReader, (FileReader) 3. klassi Writer alamklasse FileWriter, PrintWriter, BufferedWriter Puhverdamine Puhver: · info ajutiseks salvestamiseks mäluosa
Kollektsioonid Listid: ArrayList, LinkedList „Set“id: HashSet, LinkedHashSet o „SortedSet“id: TreeSet o „Map“ Kaardid: HashMap, LinkedHashMap SortedMap: TreeMap Java.IO o Baitide peale pandud I/O InputSteam ja OutputStream FileInPutStream, SocketInputStream, ByteArrayInputStream, GZIPInputStream o Karakterid, mis põhinevad I/O Loendur ja Kirjutaja FileWriter, StringWriter, OutputStreamWriter Sõltuvus „Injection“ inversiooni kontroll- Sõltuvus antakse ette o Hollywood-i põhimõte- Ära kutsu meid- Me kutsume sind o Ära loo ise sõltumatuseid, need antakse sulle ise o Puhtam disain o Lihtsam testida Sõltuvus „Injection“ o Guice - github.com/google/guice
Boldiga on abstraktsed klassid / interface’d, mitteboldiga on konkreetsed implementatsioonid. JAVA.IO • byte based I/O Tegeleb baitidega. Kasutada, kui tegeletakse ka andmetega väljaspoolt javat. • InputStream & OutputStream • FileInputStream, SocketInputStream, ByteArrayInputStream, GZIPInputStream 94 • character based I/O Tegeleb characteridega. Kasutada kui ainult java sisene rakendus, seal on osad asjad juba lahendatud nt täpitähed. • Reader & Writer • FileWriter, StringWriter, OutputStreamWriter 2