Java输入输出流.ppt
《Java输入输出流.ppt》由会员分享,可在线阅读,更多相关《Java输入输出流.ppt(78页珍藏版)》请在三一办公上搜索。
1、Java输入输出流,伍淳华北京邮电大学计算机学院,Java,输入输出流,文件描述,类File提供了一种与机器无关的方式来描述一个文件对象的属性文件的生成 public File(String path);public File(String path,String name);public File(File dir,String name);,Java,Java输入输出流,文件描述,文件名的处理 String getName();/*得到一个文件的名称(不包括路径)*/String getPath();/得到一个文件的路径名 String getAbsolutePath();/*得到一个文件
2、的绝对路径名*/String getParent();/*得到一个文件的上一级路径名*/String renameTo(File newname);/*将当前文件名更名为给定文件的完整路径*/,Java,Java输入输出流,文件描述,文件属性测试 boolean exists();/*测试当前File对象所指向的文件是否存在*/boolean canWrite();/测试当前文件是否可写 boolean canRead();/测试当前文件是否可读 boolean isFile();/*测试当前文件是否是文件(不是目录)*/boolean isDirectory();/*测试当前文件是否是目录*
3、/,Java,Java输入输出流,文件描述,普通文件信息和工具 long lastModified();/得到文件最近一次修改的时间 long length();/得到文件的长度,以字节为单位 boolean delete();/删除当前文件目录操作 boolean mkdir();/*根据当前对象生成一个由该对象指定的路径*/string list();/列出当前目录下的文件,Java,Java输入输出流,import java.io.*;class FileTestWpublic static void main(String args)System.out.println(“Path s
4、eparator”+File.pathSeparator);System.out.println(“Path separator char”+File.pathSeparatorChar);System.out.println(“File separator”+File.separator);System.out.println(“File separator char”+File.separatorChar);File f=new File(“dong1/test1.class”)System.out.println();System.out.println(f);System.out.pr
5、intln(“exist?”+file.exists();System.out.println(“name”+f.getName();System.out.println(“path”+f.getPath();System.out.println(“absolute path”+f.getAbsolutePath();System.out.println(“parent”+f.getParent();,Java,Java输入输出流,System.out.println(“is a File”+f.isFile();System.out.println(“is a directory”+f.is
6、Directory();System.out.println(“length”+f.length();System.out.println(“can read”+f.canRead();System.out.println(“can Write”+f.canWrite();System.out.println(“last modified”+f.lastModified();File newF=new File(“new File”);System.out.println(“reName”+f+”);f.renameTo(newF);System.out.println(“name”+newF
7、.getName();System.out.println(f+“exists?”+f.exists();System.out.println(“delete”+newF+”);newF.delete();System.out.println(newF+“exists?”+newF.exists();,Java,Java输入输出流,运行结果,path separator;path separator char;file separatorfile separator chardong1/test1.classexists?truenametest1.classpath/dong1/test1.
8、classabsolute path/dong1/test1.classparent/dong1is a File?trueis a directory?false,Java,Java输入输出流,运行结果,length 514can read truecan write truelast modified 907117020000rename/dong1/test1.classname newFile/dong1/test1.class exists?falsedelete newFilenewFile exists?false,Java,Java输入输出流,文件处理,列出目录中与某种模式相匹
9、配的文件 public string list(FilenameFilter filter);在接口FilenameFilter中定义的方法只有:boolean accept(File dir,String name);,Java,Java输入输出流,import java.io.*;public class FileFilterTest public static void main(String args)File dir=new File(“/dong1”);Filter filter=new Filter(“htm”);System.out.println(“list html fil
10、es in directory”+dir);String files=dir.list(filter);for(int i=0;ifiles.length;i+)File f=new File(filesi);if(f.isFile()System.out.println(“file”+f);else System.out.println(“sub directory”+f);,Java,Java输入输出流,class Filter implements FilenameFilterString extent;Fileter(String extent)this.extent=extent;p
11、ublic boolean accept(File dir,String name)return name.endsWith(“.”+extent);,Java,Java输入输出流,运行结果,list html files in derectory/dong1 file cert_test.htm file cert_sample.htm file cert_obj.htm,Java,流的基本概念,Java语言中输入/输出功能是通过流类来实现的,可以完成从基本的输入/输出到复杂的随机文件访问,包括Java中的网络操作也是通过流来完成的。,文件,程序,文件,程序,网络端点,数据流,起点,终点,网
12、络端点,Java,流的基本概念,数据流是从源到目的的字节的有序序列,先进先出。按照流相对于程序的方向,可以分为两种基本流:Input stream(输入流),Output stream(输出流),Java,输入流与输出流,输入流:用于将程序中需要的数据从键盘、文件等外部设备读入。输出流:用于将程序中产生的数据写到文件、屏幕显示等输出设备上,读操作过程:打开一个流while(是否有更多数据)读数据关闭流,写操作过程:打开一个流While(是否有更多数据)写数据关闭流,Java,流式输入输出的特点,每个数据都必须等待排在它前面的数据读入或送出之后才能被读写每次读写操作处理的都是序列中剩余的未读写数
13、据中的第一个,而不能随意选择输入输出的位置,Java,Java的标准输入输出,标准输入输出是指在命令行方式下的输入输出方式。Java通过System.in、System.out和System.err来实现标准输入输出和标准错误输出。每当main方法被执行时,就自动生成System.in、System.out和System.err三个对象。,Java,Java的标准输入输出,System.in是字节输入流InputStream类的一个对象,其中有read方法从键盘读入数据:public int read()throws IOException public int read(byte b)thr
14、ows IOExceptionSystem.out是流PrintStream类的一个对象,其中print和println方法向屏幕输出数据。System.err是流PrintStream类的一个对象,用于向屏幕输出错误信息。,Java,例1:输入输出的实例,import java.io.IOException;public class StdinOut public static void main(String args)byte buf=new byte100;int count=0;System.out.println(Please input a string:);trycount=S
15、ystem.in.read(buf);catch(IOException e)e.printStackTrace();System.out.println(count=+count);for(int j=0;j count;j+)System.out.println(char)bufj);System.out.println(Input ten chars);int ch;tryfor(int i=0;i 10;i+)ch=System.in.read();System.out.println(char)ch);catch(IOException e)e.printStackTrace();,
16、Java,例1:输入输出的实例,程序,控制台,InputStream,PrintStream,Java,Java的数据流,Java的数据流都在java.io包里Java的数据流根据操作的数据流分为字节流和字符流字节流:流中的数据以8位字节为单位进行读写,以InputStream和OutputStream为基础类。字符流:流中的数据以16位字节为单位进行读写,以Reader和Writer为基础类。,Java,Java的数据流,以字节为对象:输入流:InputStream 输出流:OutputStrea以字符为对象:输入流:Reader 输出流:Writer,字节流和字符流的比较,字节流适用于各类
17、文件每次读写8位字节效率较低,字符流适用于16位的字符文件每次读写16位字符效率较高,Java,字节流,InputStream和OutputStream分别是字节输入流和字节输出流的超类InputStream和OutputStream是抽象类InputStream和OutputStream提供许多用于字节输入输出的方法,包括:数据的读取数据的写入标记位置获取数据量关闭数据流,Java,字节输入流InputSream类的层次结构,Java,InputStream 方法,三个基本read()方法int read()/读一个字节返回int read(byte)/将数据读入byte,返回读的字节数in
18、t read(byte,int offset,int length)其它方法void close()/关闭流。int available()/返回未读的字节数long skip(long n)/跳过n个字节,Java,字节输出流OutputSream类层次,Java,OutputStream方法,三个基本的write()方法void write(int)/写一个字节void write(byte)/写一个字节数组void write(byte,int offset,int length)其它方法void close()void flush()/强行写,Java,字节文件输入输出流,FileIn
19、putStream和FileOutputStream实现了对文件的顺序访问,以字节为单位对文件进行读写操作,主要有这样几步:创建文件输入输出流的对象打开文件用文件读写方法读写数据关闭数据流。,Java,创建文件输入流对象并打开文件,创建FileInputStream的对象,打开要读取数据的文件 FileInputStream的构造方法是:public FileInputStream(String name)throws FileNotFoundExceptionpublic FileInputStream(File file)throws FileNotFoundException如下面语句可
20、以创建文件的输入流对象,并打开要读取数据的文件d:javapro1.java:FileInputStream rf=new FileInputStream(“d:/java/pro1.java”);,Java,创建文件输出流并打开文件,创建FileOutputStream的对象,打开要写入数据的文件FileOutputStream的构造方法是:public FileOutputStream(String name)throws FileNotFoundExceptionpublic FileOutputStream(String.name,Boolean append)throws FileN
21、otFoundExceptionpublic FileOutputStream(File file)throws FileNotFoundException 其中:name是要打开的文件名,file是文件类File的对象。如下面语句可以创建文件的输出流对象,并打开要写入数据的文件d:/java/pro2.java:FileOutputStream wf=new FileOutputStream(“d:/java/pro2.java”);,Java,对文件进行读写的方法,用read方法读取文件的数据 public int read()throws IOException/返回从文件中读取的一个字
22、节。public int read(byte b)throws IOException public int read(byte b,int off,int len)throws IOException/返回读取的字节数,若b的长度为0,返回0。,Java,对文件进行读写的方法,用write方法将数据写入文件public void write(int b)throws IOException 向文件写入一个字节,b是int类型,所以将b的低8位写入public void write(byte b)throws IOExceptionpublic void write(byte b,int of
23、f,int len)throws IOException 将字节数组写入文件,其中off是b中的起始位置,len是写入的最大长度。,Java,字节文件流的关闭,当读写操作完毕时,要关闭输入或输出流,释放相关的系统资源。如果发生I/O错误,抛出IOException异常。关闭数据流的方法是:public void close()throws IOException,Java,读取文件内容并显示在屏幕,import java.io.*;public class FileIn public static void main(String args)try FileInputStream rf=new
24、 FileInputStream(D:/java/file1.txt);int b;while(b=rf.read()!=-1)System.out.print(char)b);rf.close();catch(IOException ie)System.out.println(ie);catch(Exception e)System.out.println(e);,Java,复制文件,import java.io.*;public class FileIn_Out public static void main(String args)try FileInputStream rf=new F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 输入输出
链接地址:https://www.31ppt.com/p-2355838.html