




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java.io包2字节流4输入输出流简介31文件33RandomAccessFile类6字符流35本章内容提要10.1输入输出流简介流是指在计算机的输入与输出之间运动的数据序列。根据操作类型的不同,流可以分为输入流和输出流。用来从程序中读取数据的流称为输入流,而用来向程序中写入数据的流称为输出流。输入输出系统通过流与物理设备相连接,尽管与它们连接的物理设备不尽相同,但所有的流的行为具有同样的方式。10.2java.io包Java中数据输入输出的所有功能都是通过java.io包中的类和接口完成。10.3文件Java中的抽象类File提供了一些方法来操纵文件和获得文件的信息。
创建文件对象File类的对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作。Java提供了三种构造方法来创建一个文件对象。
File(Stringfilename)File(StringdirectoryPath,Stringfilename)File(Filef,Stringfilename)10.3文件
//根据参数指定的文件路径来创建一个File文件对象Filefile1=newFile("c:\\test\\abc.txt");//根据给定的目录来创建一个File对象,指定其目录和文件名
Filefile2=newFile("c:\\test","abc.txt");//根据已知的目录文件对象File来创建一个新的File实体对象
Filefile3=newFile(fiie2,"abc.txt");
10.3文件以上三种方法只是生成一个文件对象,但没有生成真正的文件,如果要生成实实在在的文件,就需要调用createNewFile()方法。[例10-1]创建文件对象10.3文件方法返回值参数含义canReadboolean无检查文件里的数据是否可读canWriteboolean无检查是否可以写入数据到文件中createNewFileboolean无产生一个空的文件deleteboolean文件名删除文件existsboolean无文件是否存在文件操作
File类所提供的方法分为两类,一类针对文件的处理,另一类针对目录的处理。10.3文件[例10-2]获取文件的信息Name:Test10_2.javaPath:C:\\Test10_2.java文件存在文件是可读的文件是可写的文件长度为424bytes.
10.3文件目录操作
1.创建目录Java提供了File类的重载构造方法来生成一个目录对象。通过该构造方法只是生成一个目录对象,如果要生成实实在在的目录,就需要调用mkdir()方法。File(StringdirectoryPath)
10.3文件2.列出目录中的文件如果File对象是一个目录,那么该对象可以调用下述方法列出该目录下的文件和子目录:publicString[]list()//用字符串形式返回目录下的全部文件publicFile[]listFiles()//用File对象形式返回目录下的全部文件10.3文件Java中可以使用File类的下述两个方法,列出指定类型的文件:publicString[]list(FilenameFilter obj)该方法用字符串形式返回目录下的指定类型的所有文件。publicFile[]listFiles(FilenameFilterobj)该方法用File对象返回目录下的指定类型所有文件。
10.3文件[例10-3]列出c:\java目录下的所有java文件FilenameFile是一个接口,该接口有一个方法:publicbooleanaccept(Filedir,Stringname)10.3文件运行可执行文件当要执行一个本地机器上的可执行文件时,可以使用java.lang包中的Runtime类。首先使用Runtime类声明一个对象,然后使用该类的静态getRuntime()方法创建这个对象。例如:Runtimeec;ec=Runtime.getRuntime();
10.3文件10.4字节流抽象类InputStream是所有字节输入流的基类,抽象类OutputStream是所有字节输出流的基类。因为InputStream和OutputStream都是抽象类,所以不能直接生成对象,而是要通过覆盖其抽象方法的继承类来创建程序中所需要的对象。InputStream类和OutputStream类
1.InputStream类
InputStream类中定义了与字节输入流操作有关的方法,可以完成从输入流中读入数据的功能.2.OutputStream类OutputStream类定义了所有字节输出流中的方法,可以完成写入数据的功能
10.4字节流FileInputStream类和FileOutputStream类
1.FileInputStream类创建文件输入流为了创建FileInputStream类的对象,用户可以调用它的构造方法。下面列出了两个构造方法:FileInputStream(Stringname)FileInputStream(Filefile)10.4字节流处理I/O异常当使用文件输入流构造方法建立文件输入流时,可能会出现IOException程序必须使用一个try-catch块检测并处理这个异常。为了把一个文件输入流对象与一个文件关联起来,使用类似于下面所示的代码:try{//创建输入流FileInputStreamins=newFileInputStream("myfile.dat");}catch(IOExceptione){ System.out.println("Filereaderror:"+e);}10.4字节流从输入流中读取字节输入流的作用是提供通往数据的通道,程序可以通过这个通道读取数据。Java中的read()方法完成了从输入流中读取数据的功能。read()方法的格式如下:intread();intread(byteb[]);intread(byteb[],intoff,intlen);10.4字节流关闭流如果没有关闭那些被打开的流,当另一个程序试图打开这个流时,则可能会出现错误。关闭输出流的另一个原因是把该流缓冲区的内容冲洗掉。10.4字节流2.FileOutputStream类FileOutputStream提供了文件的写入能力。FileOutputStream类有2个构造方法:FileOutputStream(Stringname)FileOutputStream(Filefile)可以使用write方法把字节发送给输出流,如下所示:publicvoidwrite(byteb[])publicvoid.write(byteb[],intoff,intlen)10.4字节流[例10-6]使用字节流写文件10.4字节流10.5字符流1.Reader和Writer对字符文件(如文本文件)的处理是以Unicode字符为基本单位的。Reader和Writer就解决了这个问题,它们可以以字符为单位处理数据流。Reader和Writer也是两个抽象基类,只是提供了一些用于字符流处理的方法,本身不能用来生成实例。Java类库中所有进行字符流处理的类都基于Reader和Writer这两个类。方法含义intread()读取单一字符longskip(longn)跳过数据流中的n个字符voidmark()在流中标记一个位置voidreset()返回到流中标记的位置booleanready()测试流是否可读取booleanmarkSupport()返回一个boolean值,描述流是否支持标记和复位10.5字符流方法含义voidclose()关闭流voidflush()将缓冲区的数据输出到流voidwrite(char[]char)将一个字符数组输出到流voidwrite(char[]char,intoffset,intlength)将一个数组内从offset起的length长的字符串输出到流10.5字符流2.FileReader类和FileWriter类FileReader和FileWriter类分别是Reader和Writer的子类。类FileReader创建了一个可以读取文件内容的Reader类。它最常用的构造方法如下:publicFileReader(StringfilePath)publicFileReader(FilefileObj)
10.5字符流类FileWriter创建一个可以写文件的Writer类。它最常用的构造方法如下:publicFileWriter(StringfilePath)publicFileWriter(StringfilePath,booleanappend)publicFileWriter(FilefileObj)10.5字符流3.BufferedReader类和BufferedWriter类BufferedReader类的构造方法如下:BufferedReader(Readerin)例如:BufferedReaderin=BufferedReader(newFileReader("Student.txt"));BufferedReader流能够读取文本行,方法是readLine()。10.5字符流可以将BufferedWriter流和FileWriter流连接在一起,然后使用BufferedWriter流将数据以确定长度字符串的形式写到目的地.例如:FileWritertofile=newFileWriter("hello.txt");BufferedWriterout=BufferedWriter(tofile);
10.5字符流[例10-7]文件编辑1.下面关于Java中的类的说法正确的是()。A.J2SEB.JREC.J2EED.J2ME答案:ACD10.5字符流10.6RandomAccessFile类Java语言中还定义了另一个功能更强大、使用更方便的RandomAccessFile类,它可以实现对文件的随机读写操作。RandomAccessFile类既不是输入流的子类,也不是输出流的子类,但是RandomAccessFile类创建的流既可以是输入流也可以是输出流。1.创建RandomAccessFile对象RandomAccessFile类有以下两个构造方法:RandomAccessFile(Stringname,Stringmode)RandomAccessFile(Filefile,Stringmode)例如:Filef1=newFile("a.txt");RandomAccessFilemyf1=newRandomAccessFile(f1,"rw");10.6RandomAccessFile类
2.对文件位置指针的操作RandomAccessFile实现的是随机读写,即可以在文件的任意位置执行数据读写。longgetFilePointer()voi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学生创业项目的市场调研与分析方法
- 大数据驱动的保险业务创新研究
- 零售、线上销售与批发三者关系下的药品价格波动解析
- 学生家庭支持的心理健康促进策略
- 儿童房装修环保与健康考虑
- 健身房运动空间规划
- 学习动力不足的解决方法探讨
- 买地服务合同范例
- 升降平台车合同范例
- 劳动合同合同范例制作
- (2024)重庆市公务员考试《行测》真题卷及答案解析
- 国家电网十八项重大反事故措施
- 2025年高考化学二轮专题复习课件 选择题研究2 阿伏加德罗常数的相关判断
- 抗滑桩(旋挖桩)专项施工方案
- 国开(四川)2024年秋《社会学概论》形考任务1-2答案终结性考核答案
- 医院培训课件:《妊娠期糖尿病的围产期管理》
- 中医适宜技术-中药热奄包
- 2024年江苏省南通市国家保安员资格考试题库国编版
- 全国高中生物奥林匹克竞赛试题
- 中医治肥胖课件
- 中医针灸悬针
评论
0/150
提交评论