《JAVA语言程序设计》第9章.ppt
《《JAVA语言程序设计》第9章.ppt》由会员分享,可在线阅读,更多相关《《JAVA语言程序设计》第9章.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1Java I/O操作n概念nJava I/O类nJava I/O操作n标准输入/输出n文件读写操作n目录管理n随机访问文件n文件属性2概念nI/O来源n控制台(console,如DOS窗口)打印/读入n文件(file)读/写n网络接口(TCP/UDP端口)读/写n针对数据的读写n以流(stream)的方式对数据进行操作数据源程序读出数 据流目的程序写入数 据流流的重要特性n顺序读/写nsequentially3概念n读/写流的一般流程n读(Reading)1.open a stream /打开读出流2.while more information /判断3.read information
2、/读4.close the stream /关闭流n写(Writing)1.open a stream /打开写入流2.while more information /判断3.write information /写4.close the stream /关闭流4概念n两种流的定义(读取信息的基本数据单位)n字节流(byte stream):一个字节(8-bit)一个字节读/写n字符流(character stream):一个字符一个字符读/写(具有特定字符编码的数据)j a v a 语 言6A 61 76 61 D3 EF D1 D4以字节流的方式读:读8次,8个字节以字符流的方式读:读6次
3、,6个字符5Java I/O操作n概念nJava I/O类nJava I/O操作n标准输入/输出n文件读写操作n目录管理n随机访问文件n文件属性6Java I/O类n字节流的读/写操作(来自JDK1.0)njava.io.InputStream(抽象类)1.public abstract int read()2.public int read(byte b)3.public int read(byte b,int offset,int length)4.到达流的终点,无数据读出则返回-1njava.io.OutputStream(抽象类)1.public abstract void write
4、(int b)2.public void write(byte b)3.public void write(byte b,int offset,int length)n所有的读/写函数都抛出java.io.IOException7Java I/O类n字符流的读/写操作(来自JDK1.1)njava.io.Reader类(抽象类)1.public int read()2.public int read(char cbuf)3.publc abstract int read(char cbuf,int offset,int length)4.到达流的终点,无数据读出则返回-1njava.io.Wr
5、iter类(抽象类)1.public void write(int c)2.public void write(char cbuf)3.public void write(char cbuf,int offset,int length)n所有的读/写函数都抛出java.io.IOException8Java I/O类nI/O流的层次关系nclass java.io.InputStream的子类nclass java.io.ByteArrayInputStreamnclass java.io.FileInputStreamnclass java.io.FilterInputStreamnclas
6、s java.io.BufferedInputStreamnclass java.io.DataInputStream nclass java.io.LineNumberInputStreamnclass java.io.PushbackInputStreamnclass java.io.ObjectInputStream nclass java.io.PipedInputStreamnclass java.io.SequenceInputStreamnclass java.io.StringBufferInputStreamn 9Java I/O类nI/O流的层次关系nclass java.
7、io.OutputStream的子类nclass java.io.ByteArrayOutputStreamnclass java.io.FileOutputStreamnclass java.io.FilterOutputStreamnclass java.io.BufferedOutputStreamnclass java.io.DataOutputStream nclass java.io.PrintStreamnclass java.io.ObjectOutputStreamnclass java.io.PipedOutputStreamn 10Java I/O类nI/O流的层次关系n
8、class java.io.Reader的子类nclass java.io.BufferedReadernclass java.io.LineNumberReadernclass java.io.CharArrayReadernclass java.io.FilterReader nclass java.io.PushbackReadernclass java.io.InputStreamReadernclass java.io.FileReadernclass java.io.PipedReadernclass java.io.StringReadern 11Java I/O类nI/O流的层
9、次关系nclass java.io.Writer的子类nclass java.io.BufferedWriternclass java.io.CharArrayWriternclass java.io.FilterWriternclass java.io.OutputStreamWriter nclass java.io.FileWriternclass java.io.PipedWriternclass java.io.PrintWriternclass java.io.StringWritern 12Java I/O类nI/O流的分类(12个功能类)I/O类型所用到的类描述文件FileRe
10、ader/FileWriterFileInputStream/FileOutputStream文件流(读/写文件)缓冲BufferedReader/BufferedWriterBufferedInputStreamBufferedOutputStream提高读/写效率打印PrintWriter PrintStream(System.out.println()内存CharArrayReader/CharArrayWriterByteArrayInputStreamByteArrayOutputStreamStringReader/StringWriterStringBufferInputStre
11、am读/写内存13Java I/O类nI/O流的分类(12个功能类)I/O类型所用到的类描述字节流和字符流的转换InputStreamReaderOutputStreamWriter将InputStream中读入的字节转为字符/将字符转为字节写入OutputStream管道pipePipedReader/PipedWriterPipedInputStream/PipedOutputStream文件流(读/写文件)连接ConcatenationSequenceInputStream多个输入流连接为一个输入流对象串行化ObjectInputStreamObjectOutputStreamObjec
12、t Serialization14Java I/O类nI/O流的分类(12个功能类)I/O类型所用到的类描述基本数据转化DataInputStreamDataOutputStreamJAVA基本数据类型的读/写计数LineNumberReaderLineNumberInputStream读操作时记录行数Peeking AheadPushbackReaderPushbackInputStream可回退缓存(pushback buffer)过滤FilterReader/FilterWriterFilterInputStream/FilterOutputStream在读/写操作时对数据进行过滤15J
13、ava I/O操作n概念nJava I/O类nJava I/O操作n标准输入/输出n文件读写操作n目录管理n随机访问文件n文件属性16Java I/O操作n主要内容1.标准输入/输出n控制台屏幕打印和键盘读入2.文件I/O操作n文件读写n如何提高文件读写效率n流的包装(Wrap)n基本数据转换流n目录管理n随机访问文件(Random Access File)n文件属性3.网络流操作(见第十三讲)17n输出:控制台屏幕打印class Test public static void main(String args)System.out.println(“Hello World!”);标准输入/输
14、出C:java TestHello World!C:18n输入:键盘读入import java.io.IOException;class Test public static void main(String args)throws IOException byte b=new byte10;System.out.println(Received number=+System.in.read(b);标准输入/输出C:java TestAReceived number=3C:19n文件读/写流程1.打开文件流2.条件判断3.读出/写入4.关闭文件流n两种类型文件nFileInputStream/
15、FileOutputStream(字节流)n读取/生成ASCII文件nFileReader/FileWriter (字符流)n读取/生成包括汉字字符的文件文件读写操作201.文件字节流构造方法(打开字节流)n利用java.io.FileInputStream类读取文件npublic FileInputStream(String name)throws FileNotFoundExceptionnpublic FileInputStream(File file)throws FileNotFoundExceptionn利用java.io.FileOutputStream类写/生成文件npubli
16、c FileOutputStream(String name)throws FileNotFoundExceptionnpublic FileOutputStream(String name,boolean append)throws FileNotFoundExceptionnpublic FileOutputStream(File file)throws FileNotFoundExceptionnpublic FileOutputStream(File file,boolean append)throws FileNotFoundException /是否向已存在的文件后添加njava.
17、io.File类的构造方法public File(String pathname)文件读写操作21n文件读写-实例1文件读写操作import java.io.*;public class CopyBytes public static void main(String args)throws IOException File inputFile =new File(“original.txt);File outputFile =new File(“result.txt);FileInputStream in =new FileInputStream(inputFile);FileOutputS
18、tream out =new FileOutputStream(outputFile);int c;while(c=in.read()!=-1)out.write(c);in.close();out.close();public int read()throws IOExceptionpublic int read(byte b)throws IOExceptionpublic int read(byte b,int off,int len)throws IOExceptionFileInputStream in =new FileInputStream(“original.txt);File
19、OutputStream out=new FileOutputStream(“result.txt);public void write(int b)throws IOExceptionpublic void write(byte b)throws IOExceptionpublic void write(byte b,int off,int len)throws IOException打开流读取流写入流关闭流222.字符流构造方法(打开字符流)n利用java.io.FileReader读取文件npublic FileReader(String fileName)throws FileNotF
20、oundExceptionnpublic FileReader(File file)throws FileNotFoundExceptionn利用java.io.FileWriter写/生成文件npublic FileWriter(String fileName)throws IOExceptionnpublic FileWriter(String fileName,boolean append)throws IOExceptionnpublic FileWriter(File file)throws IOExceptionnpublic FileWriter(File file,boolea
21、n append)throws IOExceptionnjava.io.File类的构造方法public File(String pathname)文件读写操作23n文件读写-实例2文件读写操作import java.io.*;public class Copy public static void main(String args)throws IOException File inputFile =new File(“original.txt);File outputFile=new File(“result.txt);FileReader in =new FileReader(input
22、File);FileWriter out =new FileWriter(outputFile);int c;while(c=in.read()!=-1)out.write(c);in.close();out.close();FileReader in =new FileReader(“original.txt);FileWriter out=new FileWriter(“result.txt);public int read()throws IOExceptionpublic int read(char cbuf)throws IOExceptionpublic int read(char
23、 cbuf,int off,int len)throws IOExceptionpublic void write(int b)throws IOExceptionpublic void write(char cbuf)throws IOExceptionpublic void write(char cbuf,int off,int len)throws IOException打开流读取流写入流关闭流24n两类缓冲流n针对字节流njava.io.BufferedInputStream类njava.io.BufferedOutputStream类n针对字符流njava.io.BufferedRe
24、ader类njava.io.BufferedWriter类如何提高文件读写效率25n构造方法njava.io.BufferedInputStream类npublic BufferedInputStream(InputStream in)n默认缓冲字节(2048 bytes)npublic BufferedInputStream(InputStream in,int size)npublic BufferedOutputStream(OutputStream out)n默认缓冲字节(512 bytes)npublic BufferedOutputStream(OutputStream out,i
25、nt size)njava.io.BufferedReader类npublic BufferedReader(Reader in)n默认缓冲字节(8192 bytes)npublic BufferedReader(Reader in,int sz)npublic BufferedWriter(Writer out)n默认缓冲字节(8192 byte)npublic BufferedWriter(Writer out,int sz)如何提高文件读写效率26 String filename =“test.txt”;FileInputStream fis =new FileInputStream(f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA语言程序设计 JAVA 语言程序设计
限制150内