第一讲引言软件开发过程_第1页
第一讲引言软件开发过程_第2页
第一讲引言软件开发过程_第3页
第一讲引言软件开发过程_第4页
第一讲引言软件开发过程_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、整理ppt1Java的输入输出2000,58 88 8整理ppt2主要内容4Java的基本输入输出4IO流的类层次4标准文件类File4简单IO流4过滤流4文件的处理4Java 1.1的IO8 8整理ppt3JAVA的输入/输出4JAVA的输入/输出机制:流的概念4输入/输出流:java.io包中的标准类 两个基本抽象类: InputStream, OutputStream 基本类中定义了完成基本I/0操作的抽象方法 读写操作:read,write 关闭流的操作:close 送出并清空缓冲区数据的操作:flush8 8整理ppt4JAVA的输入/输出(续)4InputStream public

2、 int read()按二进制字节读取 public void close()4OutputStream public void write(int)写出int的低位字节 public void close() public void flush() 把缓冲写出至外设4基本IO流操纵的是无格式的二进制码8 8整理ppt5JAVA系统标准输入/输出4用于基本系统操作的类Systempublic final class java.lang.System extends java.lang.Object4System类包含三个I/O流成员用于系统标准输入/输出 public static Input

3、Stream System.in public static PrintStream System.out public static PrintStream System.err8 8整理ppt6IO流的类层次4Input/OutputStream StringBufferInputStream 仅有输入流 SequenceInputStream仅有输入流 ByteArrayInput/OutputStream /OutputStream PipedInput/OutputStream FilterInput/OutputStream DataInput/OutputStream Butte

4、redInput/OutputStream PrintStream仅有输出流8 8整理ppt7标准文件类: File4File类的对象对应于文件系统中的一个目录或文件4File类对象描述文件路径、名字、长度、可否读写等属性,可用来命名文件、查询文件属性和处理目录,但不读写文件4体现了跨平台不同文件的统一管理8 8整理ppt8File的构造函数4 path) 绝对路径File f1 = new File(“c:mydirmyfile.txt”); 相对路径,移植性较好File f2 = new File(“mydirdir1”);4 path, String name)4 dir, String

5、 name)File f3 = new ,”myfile.txt”);8 8整理ppt9File的方法4获取文件/目录属性 是否存在 public boolean exists() 判断是文件还是目录public boolean isFile();public boolean isDirectory(); 获取文件名称或整个路径public String getName() 仅返回文件名public String getPath() 返回整个路径字符串8 8整理ppt10File的方法(续) 文件长度 public long length() 文件读写属性 public boolean can

6、Read()public boolean canWrite() 列出目录中的文件 public String list()4文件/目录操作 重命名 public boolean renameTo() 删除 public boolean delete();8 8整理ppt11File的方法(续) 创建目录 public boolean mkdir()4变量separator(public static final String) 为本机操作系统支持的路径分隔符 DOS, Win95 “” Unix“/”4例: .java 对文件和目录的简单操作8 8整理ppt12public static vo

7、id main(String args) try DataInputStream din = new DataInputStream(System.in); String sdir = test”, sfile; = new File(sdir); if ( Fdir1.exists() & Fdir1.isDirectory() System.out.println(There is a directory +sdir+ exists.);for( int i=0; i Fdir1.list().length; i+) /列出目录下内容 System.out.println( (Fd

8、ir1.list()i); File(testtemp);if(!Fdir2.exists() Fdir2.mkdir(); /创建原不存在的目录System.out.println();System.out.println(Now the new list after create a new dir:);for( int i=0; i Fdir1.list().length; i+) /检查目录是否已建立System.out.println( (Fdir1.list()i);8 8整理ppt13System.out.println(Enter a in this directory:);s

9、file = din.readLine();/选取指定目录下一个文件File Ffile = new File( Fdir1, sfile );if( Ffile.isFile() ) /显示文件有关信息 System.out.println(File +Ffile.getName()+ in Path +Ffile.getPath()+ is +Ffile.length()+ in length. ); /end of if else System.out.println(the directory doesnt exist!); catch(Exception e) System.out.

10、println(e.toString(); /end of trycatch /end of main8 8整理ppt14简单的IO流4/OutputStream 代表一个在本地文件系统中的文件的IO流,可通过文件名或文件对象创建。 fis=new (“.in.txt”); fos=new (“.out.txt”);int c:while(c=fis.read()!= -1) fos.write(c);fis.close();fos.close();8 8整理ppt15简单的IO流(续)4PipedInput/OutputStream 管道:用于把一个程序的输出连接到另一个程序的输入 管道流对

11、于一个流的多次系列操作很适用public InputStream process1(InputStream s) ps=new PipedOutputStream(); PrintStream os=new PrintStream(ps); is=new PipedInputStream(ps);return is;8 8整理ppt16简单的IO流(续)4SequenceInputStreamSequenceInputStream(InputStream, InputStream) 把两个/多个InputStream连接为一个InputStream4ByteArrayInput/OutputS

12、tream 从字节数组读取/向字节数组写入8位数据4StringBufferInputStream(String) 把一个String 转换为InputStream8 8整理ppt17过滤流4FilterInput/OutputStream 作用:给朴素的Input/OutputStream加上一些修饰某些有用的格式 来源:Input/OutputStream 种类: DataInput/OutputStream BufferedInput/OutputStream PrintStream 其他8 8整理ppt18过滤流(续)4BufferedInput/OutputStream 自动利用内存

13、缓冲,不必每次存取外设 还可在其外面再加包装new DataInputStream(new BufferedInputStream(new (“File1.txt”) ) );4DataInput/OutputStream 对于基本数据类型进行有格式的读写 注意:此处为存储格式,DataOutputStream 与DataInputStream配套使用才有意义8 8整理ppt19过滤流(续) 实现了DataInput接口readInt/Float/Char/Boolean/Long/Double()readLine()从键盘读入的重要方法 实现了DataOutput接口writeInt/Flo

14、at/Char/Boolean/Long/Double()4PrintStream 对于基本数据类型进行有格式的显示 注意:此处为显示格式例:DataInOut.java8 8整理ppt20int i=20; float d=(float)20.22; String s=“Hello测试;try DataOutputStream dout = new DataOutputStream(new (“test.txt”); /dout可格式输出 DataInputStream din = new DataInputStream(new (“test.txt”); /din可格式输入 /利用Data

15、OutputStream dout写出数据 dout.writeInt(i); dout.writeFloat(d); dout.writeUTF(s); System.out.println(write successfully!); /利用DataInputStream din读入数据, din与dout配套使用 System.out.println(reading out:); System.out.println(din.readInt(); System.out.println(din.readFloat(); System.out.println(din.readUTF(); ca

16、tch(Exception e) 8 8整理ppt21文件的处理4 , 首先利用文件名等为文件的读/写创建一个专用的流对象,从而在程序和文件之间建立数据传递通道 通过调用文件输入/输出流的方法read/write 在程序中对流对象读出/写入数据,实现对本地文件的读写 例外: IOException8 8整理ppt22文件的处理(续)4随机访问文件:RandomAccessFile类 不属于Input/OutputStream 用于访问本地文件 可以实现随机访问 可读可写 同时实现了DataInput和DataOutput接口,可同时进行有格式的读写4创建时指定对应某一文件完成读或写操作 Ran

17、domAccessFile s1=new RandomAccessFile(“a.txt”,”r”); File f1=new File(“a.txt”); RandomAccessFile s2=new RandomAccessFile(f1,”rw”);8 8整理ppt23文件的处理(续)4随机文件读写 readXx(),writeXx( ):实现DataInput/Output接口 读写位置:文件指针及其操作函数public int skipBytes(int n);public void seek(long n);public long get(); 绝对地址4例:testRandom

18、.java8 8整理ppt24/第一次操作,依次写出10个数据RandomAccess = /读写模式 new RandomAccessFile(rtest.dat, rw);for(int i = 0; i 10; i+) rf.writeDouble(i*1.414);rf.close();/第二次操作,随机输出修改一个数值rf = new RandomAccessFile(“rtest.dat”, “rw”); /读写模式rf.seek(5*8);rf.writeDouble(47.0001);rf.close();/第三次操作,依次读入10个数据rf = new RandomAcces

19、sFile(“rtest.dat”, “r”); /读模式for(int i = 0; i 10; i+)System.out.println(Value + i + : + rf.readDouble();rf.close();8 8整理ppt25Java1.1的I/O4与1.0.2相比的优越性 国际化引入了字符流(Character Stream)处理16位的Unicode码,而1.0.2中的字节流(Byte Stream)仅处理8位字节。新引入的Reader及Writer类均支持Unicode码。 性能新的API的速度优于1.0.2的类库8 8整理ppt26基本类的变化4具有deprec

20、ated信息,但向前兼容 引入Reader,替代InputStream 引入Writer,替代OutputStream4桥梁:InputStreamReader类和OutputStreamWriter类InputStreamReaderInputStreamReaderOutputStreamWriterOutputStreamWriter8 8整理ppt27具体I/O流的变化4一般规则:由XXXReader/Writer替代XXXInput/OutputStream4特例: 没有改变的类:DataOutputStream, SequenceInputStream,(File, RandomA

21、ccessFile) DataInputStream的readLine()方法deprecated, 要使用BufferedReader的ReadLine()4例:NewIODemo.java4参考文件correspond.doc8 8整理ppt28/ 1. Reading input by lines:BufferedReader in = new BufferedReader( new (test.txt);String s, s2 = new String();while(s = in.readLine()!= null) /要利用BufferedReader调用readLine s2

22、+= s + n;in.close();/ 1b. Reading standard input:BufferedReader stdin = new BufferedReader( /包装标准输入 new InputStreamReader(System.in); /转换为ReaderSystem.out.print(Enter a line:);System.out.println(stdin.readLine();8 8整理ppt29/ 2. Input from memoryStringReader in2 = new StringReader(s2);int c;while(c =

23、in2.read() != -1) System.out.print(char)c);/ 3. Formatted memory inputtry DataInputStream in3 = new DataInputStream(new StringBufferInputStream(s2); while(true) System.out.print(char)in3.readByte(); catch(EOFException e) System.out.println(End of stream);8 8整理ppt30/ 4. Storing & recovering datat

24、ry /out2用于保存数据 DataOutputStream out2 = new DataOutputStream( new BufferedOutputStream( new (Data.txt); out2.writeDouble(3.14159); out2.writeBytes(That was pi); out2.close(); /in5用于读入数据,in5br用于读入字符串 DataInputStream in5 = new DataInputStream( new BufferedInputStream( new (Data.txt); BufferedReader in5br = new BufferedReader( new InputStreamReader(in5); System.out.println(in5.readDouble(); System.out.println(in5br.readLine(); catch(EOFException e) System.out.println(End of stream);8 8整理ppt31标准IO重定向4Sy

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论