第 7 章 输入输出处理

64

Upload: vinson

Post on 25-Jan-2016

50 views

Category:

Documents


2 download

DESCRIPTION

第 7 章 输入输出处理. 7.1 输入/输出概述. 7.1.1输入/输出流概念 输入/输出时,数据在通信通道中流动。所谓“数据流 (stream)” 指的是所有数据通信通道之中,数据的起点和终点。信息的通道就是一个数据流。只要是数据从一个地方“流”到另外一个地方,这种数据流动的通道都可以称为数据流。 输入/输出是相对于程序来说的。程序在使用数据时所扮演的角色有两个:一个是源,一个是目的。若程序是数据流的源,即数据的提供者,这个数据流对程序来说就是一个“输出数据流”(数据从程序流出)。若程序是数据流的终点,这个数据流对程序而言就是一个“输入数据流” ( 数据从程序外流向程序) 。. - PowerPoint PPT Presentation

TRANSCRIPT

  • Your site here

    7.1 /7.1.1//(stream)/() ( )

    Your site here

    7.1.2/java.io60InputStreamOutputStreamRandomAccessFileJava 1.1ReaderWriter

    Your site here

    1InputStreamOutputStream(1)InputStreamInputStreamJavaInputStream InputStreamInputStreamread()available()skip()reset()mark()

    Your site here

    (2)OutputStreamOutputStreamJavaOutputStreamOutputStreamOutputStreamwrite()close()InputStreamOutputStreamFilterInputStreamFilterOutputStreamDataInputStreamDataOutputStream

    Your site here

    DataInputStreamreadByte()readBoolean()readShort()readChar()readInt()readLong()readFloat()readDouble()readLine()DataOutputStreamwriteByte()writeBoolean()writeShort()writeChar()writeInt()writeLong()writeFloat()writeDouble()writeChars()

    Your site here

    2ReaderWriter(1)ReaderReaderJavaReaderread() (2)WriterWriterJavaWriterwrite()

    Your site here

    7.1.3 JavaSystemSystemObjectinouterr

    Your site here

    (1)Systemin public static final InputStream inInputStream read()skip(long n)read()skip(long n)n(2)Systemoutpublic static final PrintStream out

    Your site here

    PrintStream print()println()Java(3)Systemerr public static final PrintStream errSystem.outPrintStream

    Your site here

    7.1import java.util.Scanner;class MyType{ public static void main(String args[]){ int count = 0; String b = ""; Scanner sc = new Scanner(System.in); System.out.println(""); while(sc.hasNext()){ b=sc.next(); System.out.print(b);

    Your site here

    count+=b.length(); } System.out.println(); // System.err.println("\n"+count+""); // }} +

    Your site here

    7.2 (1)java.ioimport java.io.*;(2)(3)(4)(5)(2)(5)

    Your site here

    7.2.1 InputStreamOutputStreamInputStreamOutputStreamInputStreamOutputStream1.FileInputStream FileOutputStreamFileInputStream FileOutputStreamInputStreamOutputStream(1)FileInputStreamFileInputStream

    Your site here

    FileInputStreamFileInputStream(String name) nameFileInputStream fis = new FileInputStream ("c:/config.sys"); FileInputStream(File file)fileFile myFile = new File("c:/config.sys"); FileInputSteam fis = new FileInputStream(myFile); FileInputStreamFileNotFoundException

    Your site here

    (2)FileInputStreamread()int read()-1int read(byte b[])b-1int read(byte b[],int off, int len)b[off]-1(3)FileOutputStreamFileOutputStream

    Your site here

    FileOutputStreamFileOutputStreamFileOutputStreamFileOutputStream(String name) nameFileOutputStream fos = new FileOutputStream("d:/out.dat"); FileOutputStream(File file) fileFile myFile = new File("d:/out.dat"); FileOutputStream fos = new FileOutputStream(myFile);

    Your site here

    (4)FileOutputStreamwrite()void write(int b)void write(byte b[])b void write(byte b[],int off,int len)bofflen(5)FileInputStreamJavaclose() fos.close();

    Your site here

    7.2//java CopyFile import java.io.*;class CopyFile { public static void main(String args[])throws IOException{ int i; FileInputStream fin; FileOutputStream fout; try { try { fin = new FileInputStream(args[0]); } catch(FileNotFoundException e) { System.out.println(""); return; }

    Your site here

    try { // fout = new FileOutputStream(args[1]); } catch(FileNotFoundException e) { System.out.println(""); return; } } catch(ArrayIndexOutOfBoundsException e) { System.out.println(: CopyFile "); return; } try { // while((i = fin.read())!= -1) fout.write(i); } catch(IOException e) { System.out.println(""); }

    Your site here

    fin.close(); fout.close(); }}7.3//java ShowFile TEST.TXTimport java.io.*;class ShowFile { public static void main(String args[])throws IOException{ int i; FileInputStream fin = null; try { fin = new FileInputStream(args[0]); } catch(FileNotFoundException e) {

    Your site here

    System.out.println(""); System.exit(-1); } catch(ArrayIndexOutOfBoundsException e) { System.out.println( : java ShowFile "); System.exit(-2); } // EOF while(( i = fin.read()) != -1) System.out.print((char) i); fin.close(); }}

    Your site here

    2.DataInputStream DataOutputStreamFileInputStream FileOutputStream//DataInputStream DataOutputStream(1);(2);(3)/

    Your site here

    DataInputStreamDataInputStream(InputStream in)FilterInputStreamInputStreaminDataOutputStreamDataOutputStream(OutputStream out)OutputStream 7.4CFIB.DATFibonacci20Fibonacci11,1,2,3,5,8,13,21,.import java.io.*;class FibOut {

    Your site here

    public static void main(String args[]) { try { // OutputStream fos = new FileOutputStream("c:/fib.dat"); DataOutputStream dos = new DataOutputStream(fos); int count = 0,i = 1,j = 1; for(;count < 20; count++){ dos.writeInt(i); int k = i + j; i = j; j = k; } fos.close(); // } catch(Exception e) {

    Your site here

    System.out.println("Exception: " + e); } System.out.println(""); }}CFIB.DATTYPE7.57.57.4Fibonacciimport java.io.*;class FibIn {

    Your site here

    public static void main(String args[]) { try { FileInputStream fis = new FileInputStream("c:/fib.dat"); // DataInputStream dis = new DataInputStream(fis); // for(int i = 0; i < 20; i++){ // if(i % 10 == 0)System.out.println(); System.out.printf(%5d,dis.readInt()); } fis.close(); // } catch(Exception e) { System.out.println("Exception: " + e); } System.out.println(); } }

    Your site here

    1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 67653.BufferedInputStreamBufferedOutputStream BufferedOutputStreamFileOutputStreamflush()

    Your site here

    BufferedInputStream(1)BufferedOutputStreamBufferedOutputStreamFileOutputStreamBufferedOutputStream BufferedOutputStream(OutputStream out)512BufferedOutputStream(OutputStream out, int size)size

    Your site here

    bosFileOutputStream fos = new FileOutputStream("/user/dbf/stock.dbf"); BufferedOutputStream bos = new BufferedOutputStream(fos); (2)flush()flush()flush() public void flush() throws IOException bos.flush();

    Your site here

    (3)BufferedInputStreamBufferedInputStreamBufferedInputStream(InputStream in) BufferedInputStreamInputStreaminBufferedInputStream(InputStream in, int size) sizeBufferedInputStreamInputStreamin(4)7.5FileInputStream fis = new FileInputStream("c:/fib.dat");

    Your site here

    BufferedInputStream bis = new BufferedInputStream(fis);DataInputStream dis = new DataInputStream(bis); 4.PrintStreamPrintStreamJavaprint()println()PrintStreamOutputStreamPrintStreampublic PrintStream(OutputStream out)

    Your site here

    public PrintStream(OutputStream out,boolean autoFlush)autoFlushtrueprintln()newline('\n') 7.6PrintStreamimport java.io.*;import java.awt.*;public class PrintStreamDemo{ public static void main(String args[]) throws IOException{ FileOutputStream fos = new FileOutputStream("PrintStream"); PrintStream ps = new PrintStream(fos); Button b1 = new Button("Button");

    Your site here

    ps.println(123); ps.println(3.1415926); ps.println("123"+456); ps.println(123==123.0); ps.println(b1); ps.close(); fos.close(); }} printstream1233.1415926123456truejava.awt.Button[button0,0,0,0x0,invalid,label=Button]

    Your site here

    7.2.2 ReaderWriterJava16Unicode/Java1.1ReaderWriterInputStreamOuputStreamReaderWriterIO

    Your site here

    1.InputSteamReaderOutputStreamWriterjava.ioInputSteamReaderOutputStreamWriterpublic InputSteamReader(InputSteam in)public InputSteamReader(InputSteam in,String enc)public OutputStreamWriter(OutputStream out)public OutputStreamWriter(OutputStream out,String enc)

    Your site here

    inoutencgetEncoding()read()write()close()ReaderWriter2.FileReaderFileWriterFileReaderFileWriterInputSteamReaderOutputStreamWriter/FileReaderFileReader(File file)fileFileReader

    Your site here

    FileReader(String fileName) fileNameFileReaderFileWriterFileWriter(File file) fileFileWriterFileWriter(String fileName) fileNameFileWriterappendappendtrueFileReaderread()read(char[] buffer)FileWriterwrite(String str)Write(char[] buffer)write(int char)flush()close()flushgetEncoding()

    Your site here

    7.7FileWriterimport java.io.*;class FileWriterDemo { public static void main(String args[]){ FileWriter out = null; try{ out = new FileWriter("FileWrite.txt"); System.out.println("Encoding:" + out.getEncoding()); out.write("Java Programming."); out.close(); }catch(IOException e){} }}Encoding:GBK

    Your site here

    >type filewriter.txt Java Programming.3.BufferedReaderBufferedWriterBufferedReaderBufferedWriterpublic BufferedReader(Reader in)public BufferedReader(Reader in,int sz)public BufferedWriter(Writer out)public BufferedWriter(Writer out,int sz)inoutsz

    Your site here

    BufferedReaderBufferedWriterReaderWriterreadLine()newLine()line.separator7.8FileWriterBufferedWriterwrite()import java.io.*;class BufferedWriterDemo { public static void main(String args[]) { try { FileWriter fw = new FileWriter(args[0]); BufferedWriter bw = new BufferedWriter(fw);

    Your site here

    for(int i = 0; i < 10; i++) { // bw.write("Line " + i + "\n\r"); } bw.close(); // }catch(Exception e) { System.out.println("Exception: " + e); } }}java BufferedWriterDemo p7-8.txt // p7-8.txtp7-8.txttypeLine 0Line 910

    Your site here

    7.9FileReaderBufferedReaderreadLine()import java.io.*;class BufferedReaderDemo { public static void main(String args[]) { try { FileReader fr = new FileReader(args[0]); BufferedReader br = new BufferedReader(fr); String s; while((s = br.readLine()) != null) System.out.println(s); fr.close(); } catch(Exception e) { System.out.println("Exception: " + e);} }}

    Your site here

    4.PrintWriterPrintWriterprint()println()JavaPrintWriterPrintWriter(OutputStream out)PrintWriter(OutputStream out, boolean autoFlush)PrintWriter(Writer out)PrintWriter(Writer out, boolean autoFlush)test.txtPrintWriterpw PrintWriter pw = new PrintWriter(new FileOutputStream("test.txt"));

    Your site here

    :PrintWriter pw=new PrintWriter(new FileWriter("test.txt"));7.10import java.io.*;public class ReadKey{ public static void main(String args[]){ File f = new File(args[0]); try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); PrintWriter pw = new PrintWriter(new FileWriter(f)); String s; System.out.println( "(Ctrl+z)"); while((s = br.readLine())!=null)pw.println(s);

    Your site here

    br.close(); pw.close(); }catch(IOException e){ e.printStackTrace(); } }}

    Your site here

    7.3 JavaRandomAccessFileRandomAccessFileObjectDataInputDataOutputDataInputStreamDataOutputStream1.RandomAccessFileRandomAccessFileRandomAccessFile(File file, String mode)RandomAccessFile(String name, String mode)

    Your site here

    namefileFilemoderrwmoderIOExceptionmoderwnameIOExceptionRandomAccessFile rf = new RandomAccessFile ("/usr/db/stock.dbf", "rw"); 2.RandomAccessFileDataInput/DataOutputDataInputStreamDataOutputStreamread()write()

    Your site here

    3.public long getFilePointer()throws IOExceptionpublic void seek(long pos) throws IOException pospos0rf rf.seek(rf.length());public long length()throws IOException"length()"public int skipBytes(int n)throws IOExceptionn

    Your site here

    4."rw" rf = new RandomAccessFile("c:/config.sys","rw"); rf.seek(rf.length());7.11import java.io.*;public class RandomIODemo { public static void main(String args[]) throws IOException { RandomAccessFile rf = new RandomAccessFile("random.txt","rw"); rf.writeBoolean(true); rf.writeInt(123456); rf.writeChar('j'); rf.writeDouble(1234.56);

    Your site here

    rf.seek(1); System.out.println(rf.readInt()); System.out.println(rf.readChar()); System.out.println(rf.readDouble()); rf.seek(0); System.out.println(rf.readBoolean()); rf.close(); }} 123456 j 1234.56 true

    Your site here

    7.12nnimport java.io.*;class RandomIODemo2{ public static void main(String args[]) { try { RandomAccessFile rf = new RandomAccessFile(args[0], "r"); long count = Long.valueOf(args[1]).longValue(); long position = rf.length(); position -= count; if(position < 0) position = 0; rf.seek(position); while(true) { try {

    Your site here

    byte b = rf.readByte(); System.out.print((char)b); }catch(EOFException eofe) { break; } } }catch(Exception e) { e.printStackTrace(); } }} :java RandomIODemo2 RandomIODemo2.java 50RandomIODemo2.java50

    Your site here

    7.4 java.ioFileJavaJavaFileObject

    Your site here

    7.4.1 public boolean mkdir() public String[] list() 7.4.2 JaveFileFile1FileFileFile

    Your site here

    File(String pathname)File(File parent, String child)File(String parent, String child) 2

    Your site here

    (1)public String getName() public String getParent() public String getPath() public String getAbsolutePath() (2)public boolean renameTo(File dest) (3)public boolean delete()

    Your site here

    (4)public boolean exists() public boolean canWrite() public boolean canRead() public boolean isFile() public boolean isDirectory() public boolean isAbsolute()(5)public long lastModified() public long length()

    Your site here

    7.13import java.io.*;public class FileInfo{ public static void main(String args[]) throws IOException{ File fileToCheck; if(args.length > 0){ for(int i = 0;i