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