1 / 12

פיתוח מונחה עצמים – שפת JAVA

פיתוח מונחה עצמים – שפת JAVA. קבצים. References. קורס "שיטות בהנדסת תוכנה", הפקולטה למדעי המחשב, הטכניון. קורס "מערכות מידע מבוזרות", הפקולטה להנדסת תעשייה וניהול, הטכניון. I/O Streams in Java. Introduction - 1. Definition Stream is a flow of Data. characters read from a file

taji
Download Presentation

פיתוח מונחה עצמים – שפת JAVA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. פיתוח מונחה עצמים – שפת JAVA קבצים

  2. References • קורס "שיטות בהנדסת תוכנה", הפקולטה למדעי המחשב, הטכניון. • קורס "מערכות מידע מבוזרות", הפקולטה להנדסת תעשייה וניהול, הטכניון.

  3. I/O Streams in Java Introduction - 1 • Definition • Stream is a flow of Data. • characters read from a file • bytes written to the network • … • The information can be read/written sequentially from/to the stream. • The assumption made on the stream: the information passes in FIFO order.

  4. Stream reads Source Program i n f o r m a t i o n Stream writes Dest. Program i n f o r m a t i o n Introduction - 2 • No matter where the data is coming from or going to and no matter what its type, the algorithms for sequentially reading and writing data are basically the same: Reading: Writing: open a stream while more informationwrite information close the stream • open a stream • while more information • read information • close the stream

  5. Standard Input / Output Streams in Java Writing to the screen: System.out.print(…); System.out.println(…); Reading from the screen: System.in.read(byte[]); System.in.read(byte[],int,int); • Standard streams are automatically opened, so no need to open them explicitly. • Writing System.out.print(“Hello\n”); is the same as writing System.out.println(“Hello”); • You have to create byte[] array before calling read function. • read function has to be surrounded by try{ }catch(..){ } block.

  6. Example - Echo package test; import java.io.*; public class IOTest { public IOTest() { } public static void main(String[] args) { byte[] ch = new byte[80]; int num = 0; try { num = System.in.read(ch); System.out.println(new String(ch,0,num)); // String(byte[] bt, int offset,int length) } catch (IOException ex) { System.out.println("Can't read"); ex.printStackTrace(); } } }

  7. java.io Classes Hierarchy • The Streams can be divided into Character Streams and Byte Streams Character Streams: Reader and Writer are the abstract superclasses for character streams in java.io. Reader provides the API and partial implementation for readers--streams that read 16-bit characters--and Writer provides the API and partial implementation for writers--streams that write 16-bit characters. Byte Streams: To read and write 8-bit bytes, programs should use the byte streams, descendants of InputStream and OutputStream . InputStream and OutputStream provide the API and partial implementation for input streams (streams that read 8-bit bytes) and output streams (streams that write 8-bit bytes). These streams are typically used to read and write binary data such as images and sounds.

  8. Character Streams Hierarchy BufferedReader LineNumberReader CharArrayReader InputStreamReader FileReader Reader FilterReader PushbackReader PipedReader StringReader BufferedWriter CharArrayWriter OutputStreamWriter FileWriter Writer FilterWriter PipedWriter StringWriter

  9. Example import java.io.*; //must be imported public class Copy { public static void main(String[] args) throws IOException { File inputFile = new File("farrago.txt"); File outputFile = new File("outagain.txt"); //FileOutputStream and FileInputStream for bytes //throws FileNotFoundException (descendent of IOException) FileReader in = new FileReader(inputFile); FileWriter out = new FileWriter(outputFile); int c; while ((c = in.read()) != -1) out.write(c); // housekeeping in.close(); out.close(); } }

  10. Advanced Usage //extracts from a class – not a whole class//args <name of file><name of delimiter> import java.io.*; import java.util.StringTokenizer; . . . try { int lineNum, wordNum; String line; BufferedReader inStream = new BufferedReader(new FileReader(args[0])); lineNum = wordNum = 0; do { line = inStream.readLine(); if(line != null) { lineNum++; StringTokenizer st = new StringTokenizer(line,args[1]); wordNum += st.countTokens(); } }while(line != null); System.out.println("There are " + lineNum + " lines."); System.out.println("There are " + wordNum + " words."); }catch(FileNotFoundException fnfe) { System.out.println("File ("+ args[0] +") not found."); }catch(IOException ioe) { System.out.println("I/O error while reading file ("+ args[0] +")"); }

  11. private void writeToFile(String from, String to){ try{ FileReader fr = new FileReader(from); BufferedReader br = new BufferedReader(fr); FileWriter fw = new FileWriter(to); String line = null, srt[];String wline; int lineNum = wordNum = 0; while ( (line = br.readLine()) != null ) { str = line.split("\\s+"); wordNum += str.length; lineNum ++;} fw.write("There are " + lineNum + " lines."); fw.write("There are " + wordNum + " words."); fw.close(); fr.close(); } catch (IOException e){ System.out.println("Uh oh, got an IOException error!"); e.printStackTrace(); } }

  12. IO - Advanced topics • Redirecting standard IO • System contains setIn, setOut and setErr. • System.setIn(new FileInputStream(“x.dat”)); • System.setOut(new PrintStream(new FileOutputStream( "out.txt"))); • Standard streams could be from/to anything you want! • Compression • Read about ZipInputStream and ZipOutputStream • For more information: • jdk documentation • On-line tutorials : http://java.sun.com/docs/books/tutorial/

More Related