JAVA中的输入输出.ppt
《JAVA中的输入输出.ppt》由会员分享,可在线阅读,更多相关《JAVA中的输入输出.ppt(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JavaJava的输入的输入/输出流输出流熟悉使用File类操作文件属性熟悉使用流读/写文件熟悉使用随机访问类读/写文件本章目标Java的输入/输出类库v 流的概念流的概念流:是同一台计算机或网络中不同计算机之间有序运动的数据序列。输入数据流:外设流入计算机的数据序列数据流 输出数据流:计算机流向外设的数据序列数据序列:可以是原始的二进制字节数据,也可以是经过特定编码处理的有格式的数据v输入输入/输出流类输出流类 用于实现I/O操作的流类和接口在java.io包中。ObjectInputStreamOutputStreamReaderWriterFileRandomAccessFileJava
2、的输入/输出类库什么是File类数据流类实现文件的顺序读写。RandomAccessFile 类 实现文件的随机读写。他们都不能对文件的属性进行访问。使用File类,可以访问文件属性信息,但是,它不提供读写文件的方法。下面列出File类的构造方法和实例方法:1.File类有三个构造方法File(String filename)File(String directoryPath,String filename)File(File f,String filename)其中,filename指文件名,directoryPath指文件所在的 目录,f指文件的目录对象。2.实用方法实用方法(1)属性操作
3、 pubic String getName()获取文件名 public String getPath()获取文件路径 public String getAbsolutePath()获取文件绝对路径 public long length()获取文件的长度(单位是字节)public String getParent()获取文件的父目录 public File getParentFile()获取文件的父目录 public long lastModified()获取文件最后修改时间(时间是从 1970年午夜至文件最后修改时刻的毫秒数)public boolean canRead()判断文件是否是可读的
4、 public boolean canWrite()判断文件是否可被写入 public boolean exits()判断文件是否存在 public boolean isFile()判断是不是一个正常文件 public boolean isDirectroy()判断是不是一个目录 public boolean isHidden()判断文件是不是隐藏文件(2)文件操作 public boolean renameTo(File dest)给文件换名 public boolean delete()删除文件(3)目录操作 public boolean mkdir()创建目录 public String
5、 list()以字符串形式列出目录 public File listFiles()以File对象形式列出目录要求:在e:/test/6目录下,创建一个文件”new.txt”,然后测试该文件的属性。练习一 获得文件信息获得文件信息 import java.io.*;import java.io.*;public class first public class first public static void main(String args)public static void main(String args)File f1=new File(“E:/test/6”,“new.txt”);F
6、ile f1=new File(“E:/test/6”,“new.txt”);f1.createNewFile();/f1.createNewFile();/创建文件创建文件new.txtnew.txt System.out.println(“System.out.println(“文件文件new.txtnew.txt存在吗存在吗?:”+?:”+f1.exists();f1.exists();System.out.println(“new.txt System.out.println(“new.txt的父目录是的父目录是:”+:”+f1.getParent();f1.getParent();S
7、ystem.out.println(“System.out.println(“文件文件new.txtnew.txt是可读的吗是可读的吗?”+?”+f1.canRead();f1.canRead();System.out.println(“System.out.println(“文件文件new.txtnew.txt的长度的长度:”+:”+f1.length();f1.length();练习二 创建目录和文件创建目录和文件要求:在e:/test目录下创建一个子目录Students,在Students目录下创建文件new.doc。程序算法:程序算法:1.以e:/test和Students为参数,创建
8、一个File对 象:dir 2.调用mkdir()方法,创建目录Students。3.调用createNewFile()方法,创建文件:new.docimport java.io.File;import java.io.File;import java.io.IOException;import java.io.IOException;public class f1 public class f1 public static void main(String args)public static void main(String args)File f1=new File(d:/1/,2);F
9、ile f1=new File(d:/1/,2);f1.mkdir();f1.mkdir();File f2=new File(f1,new.doc);File f2=new File(f1,new.doc);f2.createNewFile();f2.createNewFile();现场编程要求:列出c盘根目录下的所有子目录和文件。程序算法:程序算法:1以c:/为参数,创建对象:dir 2.获取对象dir所包含的对象数组(文件和目录构成的对象):file 3.输出所包含的子目录 4.输出所包含的文件练习三 删除文件和目录要求:删除e:/test/Students目录下的文件“new.doc”
10、,然后删除目录“Students”。程序结构:1.以文件名E:/test/Students/new.doc为参数创建File对象:f 2.以目录名E:/test/Students为参数创建File对 象:dir 3.删除文件:f.delete()4.删除目录:dir.delete()Import java.io.*;Import java.io.*;public class f2public class f2 public static void main(String args)public static void main(String args)File f=new File(E:/te
11、st/Students/new.doc);File f=new File(E:/test/Students/new.doc);File dir=new File(E:/test/Students);File dir=new File(E:/test/Students);boolean b1=f.delete();/boolean b1=f.delete();/删除文件删除文件new.docnew.doc boolean b2=dir.delete();/boolean b2=dir.delete();/删除目录删除目录StudentsStudents System.out.println(“S
12、ystem.out.println(“文件文件new.docnew.doc成功删除了吗成功删除了吗?”+b1);?”+b1);System.out.println(“System.out.println(“目录目录StudentsStudents成功删除了吗成功删除了吗?”+b2);?”+b2);什么是数据流数据流是对各种流的总称。每个流本身是一个类。我们可以使用数据流读文件或写文件。输入流只能读文件不能写文件,输出流只能写文件不能读文件。1数据流概念 我们把数据的输入流和数据输出流统称为数据流(这里说的输入输出是以程序为参考点而言)。2数据流分类按照数据流动方向分为:输入流和输出流按照数据流
13、动成分分为:字节流、字符流、缓冲流、数据流、对象流等等。数据流模型为了便于理解数据流工作方式,对数据流进行抽象,得到数据流模型如图 所示。键盘键盘文件文件程序程序gggggwessdddshu输入显示器显示器打打 印印机机文件文件输入流输入流输出流输出流在程序中,使用输入流,可从键盘或文件中读取数据;使用输出流,可向显示器、打印机或文件中传输数据。数据流-字节流字节流有两个超类,也是两个抽象类,它们是字节输入流(InputStream)和字节输出流(OutputStream)。InputStream类是所有字节输入流的超类;OutputStream类是所有字节输出流的超类。1.InputStr
14、eam类下面是对InputStream类的描述:(1)InputStream的类层次图InputStream的类层 次图如图所示 InputStreamFileInputStreamPipedInputStreamFilterInputStreamObjectInputStreamSequenceInputStreamByteArrayInputStreamStringBufferInputStreamPushbackInputStreamBufferedInputStreamDataInputStream(2)InputStream类的常用方法int read()输入流调用该方法从数据源中读
15、取单个字节的数据,该方法返回字节值(0255之间的一个整数)。如果未读出字节就返回-1。int read(byte b)输入流调用该方法从数据源中试图读取b.length个字节到b中,返回实际读取的字节数目。如果到达文件的末尾,则返回-1。int read(byte b,int off,int len)输入流调用该方法从数据源中试图读取len个字节到b中,并返回实际读取的字节数目。如果到达文件的末尾,则返回-1。参数off指定从字节数组的某个位置开始存放读取的数据。void close()输入流调用该方法关闭输入流。long skip(long numBytes)输入流调用该方法跳过numBy
16、tes个字节,并返回实际跳过的字节数目。2.OutputStream类 下面是对OutputStream类的描述:(1)OutputStream类层次图OutputStreamFileOutputStreamPipedOutputStreamFilterOutputStreamObjectOutputStreamByteArrayOutputStreamPrintStreamBufferedOutputStreamDataOutputStream(2)OutputStream类的常用方法void write(int n)输出流调用该方法向输出流写入单个字节。void write(byte b)
17、输出流调用该方法向输出流写入一个字节数组void write(byte b,int off,int len)从给定字节数组中,起始于偏移量off处,取len个字节写到输出流void close()关闭输出流 字节流有多个子类,能直接对文件进行读或写的子类有 FileInputStream和FileOutputStream下面是它们的构造方法 1 FileInputStream类的构造方法:public FileInputStream(String name)throws FileNotFoundExceptionpublic FiIeInputStream(File file)throws F
18、ileNotFoundException 其中,name为文件名,file为文件类File对象,即可以以文件名或File对象构造文件输入流对象。通过文件输入流对象读文件。FileOutputStream类的构造方法:public FileOutputStream(String name)throws FileNotFoundExceptionpublic FileOutputStrearm(File file)throws FileNotFoundExceptionpublic FileOutputStrearm(String name,boolean append)throws FileNo
19、tFoundException 其中,name为文件名,file为File对象,append表示文件 的写入方式。append的值为false时,为重写方式,即要写入的内容从文件开头写入,覆盖以前的文件内容;当append的值为true时,为添加方式,即要写入的内容添加到文件的尾部。append的默认值是false。可以以文件名或File对象构造文件输出流对象,通过文件输出流对象写文件。练习四用类用类FileInputStream读文件读文件要求:读文件e:/read.txt的内容,并输出到客户端。程序算法:程序算法:1.以文件名e:/read.txt为参数,构造文件对象:f2.以文件对象f为
20、参数,构造输入流:in3.每次从in中读取n个字节,保存在数组b中4.n等于-1时结束循环,否则,把数组b以字符串的方式输出到客户端,重复步骤3。publicpublic classclass f1 f1 publicpublic staticstatic voidvoid main(String args)main(String args)File f=File f=newnew File(d:/1/new.txt);File(d:/1/new.txt);trytry bytebyte b=b=newnew bytebyte5;/5;/每次读取数据保存在该字节数组中每次读取数据保存在该字节数
21、组中 intint n=0;/n=0;/实际读取的字节数实际读取的字节数 FileInputStream in=FileInputStream in=newnew FileInputStream(f);FileInputStream(f);whilewhile(n=in.read(b)!=-1)(n=in.read(b)!=-1)String temp=String temp=newnew String(b,0,n);String(b,0,n);System.System.outout.print(n);.print(n);System.System.outout.print(temp);.p
22、rint(temp);in.close();in.close();catchcatch(IOException e)(IOException e)e.printStackTrace();e.printStackTrace();练习五用类用类FileOutputStream写文件写文件要求:把e:/read.txt中的内容,添加到服务器的e:/write.txt文件中。程序设计:1.以文件名e:/read.txt为参数,构造文件对象:f2.以文件对象f为参数,构造输入流:in4.以e:/write.txt为参数,创建一个输出流:wf5.每次从in中读取n个字节,保存在数组b中6.n等于-1时结束
23、循环,否则,把数组b以字符串的方式写到输出流wf中去,重复步骤3。packagepackage chap1;chap1;importimport java.io.File;java.io.File;importimport java.io.FileInputStream;java.io.FileInputStream;importimport java.io.FileOutputStream;java.io.FileOutputStream;importimport java.io.IOException;java.io.IOException;publicpublic classclass
24、f2 f2 publicpublic staticstatic voidvoid main(String args)main(String args)File f=File f=newnew File(e:/read.txt);File(e:/read.txt);trytry FileInputStream in=FileInputStream in=newnew FileInputStream(f);FileInputStream(f);bytebyte b=b=newnew bytebyte10;10;intint n=0;n=0;FileOutputStream wf=FileOutpu
25、tStream wf=newnew FileOutputStream(e:/write.txt);FileOutputStream(e:/write.txt);whilewhile(n=in.read(b)!=-1)(n=in.read(b)!=-1)wf.write(b,0,n);wf.write(b,0,n);System.System.outout.println(n);.println(n);wf.close();wf.close();in.close();in.close();catchcatch(IOException e)(IOException e)e.printStackTr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 中的 输入输出
限制150内