Java语言程序设计7-1-java第7章文件数据流.ppt
- 文档编号:1379761
- 上传时间:2022-10-21
- 格式:PPT
- 页数:35
- 大小:753.50KB
Java语言程序设计7-1-java第7章文件数据流.ppt
《Java语言程序设计7-1-java第7章文件数据流.ppt》由会员分享,可在线阅读,更多相关《Java语言程序设计7-1-java第7章文件数据流.ppt(35页珍藏版)》请在冰豆网上搜索。
软件学院褚龙现褚龙现第七章文件与数据流第七章文件与数据流软件学院回顾回顾Java中的异常处理中的异常处理软件学院回顾回顾Java中的异常处中的异常处理理语法格式语法格式try./可能会发生异常的程序块可能会发生异常的程序块catch(Type1id1)./处理类型处理类型1的异常的异常catch(Type2id2)./处理类型处理类型2的异常的异常finally./不管是否发生异常,最后都应处理的程序不管是否发生异常,最后都应处理的程序块块软件学院教学内容和目标教学内容和目标掌握写入和读出数据文件方法掌握写入和读出数据文件方法掌握修改文件、文件夹方法掌握修改文件、文件夹方法掌握掌握检查文件检查文件/文件夹状态方法文件夹状态方法掌握获得文件掌握获得文件/文件夹名称方法文件夹名称方法理解临时文件产生与自动删除理解临时文件产生与自动删除软件学院教学重难点教学重难点重点重点写入和读出数据文件方法写入和读出数据文件方法难点难点文件相关操作软件学院7.1写入和读出数据文件写入和读出数据文件数据文件的写入和读出数据文件的写入和读出数据的写入和读出是编程语言必备的功能数据的写入和读出是编程语言必备的功能Java的输入的输入/输出操作采用数据流的形式输出操作采用数据流的形式数据流的两种形式:
数据流的两种形式:
16位字符或位字符或8位字节位字节数据流的操作对象:
数据流的操作对象:
数据文件的读写数据文件的读写线程间的数据传输线程间的数据传输网络间的数据传播网络间的数据传播软件学院7.1写入和读出数据文件写入和读出数据文件数据文件的读数据文件的读/写步骤:
写步骤:
1.导入输入导入输入/输出包输出包利用利用import关键字导入关键字导入java.io.*包包输入输入/输出异常:
输出异常:
IOException类,它不属于运行类,它不属于运行期异常,因此必须利用期异常,因此必须利用try.catch结构或结构或throws关关键字捕获键字捕获publicstaticvoidmain(Stringargs)throwsIOException.2.创建文件对象创建文件对象对每个数据文件,都必须有一个文件类(对每个数据文件,都必须有一个文件类(File)对)对象与其关联象与其关联软件学院7.1写入和读出数据文件写入和读出数据文件2.创建文件对象创建文件对象对数据文件的操作反映为对文件对象的操作对数据文件的操作反映为对文件对象的操作构造一个文件对象,并在构造函数中给出文件名,构造一个文件对象,并在构造函数中给出文件名,就将对象与文件关联起来了就将对象与文件关联起来了File对象是不可变的,也就是说,一旦创建了一个对象是不可变的,也就是说,一旦创建了一个File对象,它的绝对路径和文件名就不能改变对象,它的绝对路径和文件名就不能改变在本例中,我们创建了两个文件对象,在本例中,我们创建了两个文件对象,file1和和file2,分别关联读出的文件和写入的文件,分别关联读出的文件和写入的文件Filefile1=newFile(data.txt);Filefile2=newFile(dest.txt);软件学院7.1写入和读出数据文件写入和读出数据文件3.创建读出创建读出/写入操作的对象写入操作的对象文件对象仅仅表示文件本身,对文件进行读文件对象仅仅表示文件本身,对文件进行读/写操写操作还需要读作还需要读/写操作对象来完成写操作对象来完成读出文件中的内容采用读出文件中的内容采用FileReader对象对象在文件中写入内容采用在文件中写入内容采用FileWriter对象对象在文件操作对象的构造函数中给出文件对象在文件操作对象的构造函数中给出文件对象FileReaderreader1=newFileReader(file1);FileWriterwriter1=newFileWriter(file2);软件学院7.1写入和读出数据文件写入和读出数据文件4.数据文件的读数据文件的读/写操作写操作FileReader对象的对象的read函数用于从文件中读出一函数用于从文件中读出一个字符,这个字符是整数类型的。
如果个字符,这个字符是整数类型的。
如果read函数的函数的返回值是返回值是-1,则说明到了文件的末尾,则说明到了文件的末尾FileWriter对象的对象的write函数用于在文件的末尾写函数用于在文件的末尾写入一个字符入一个字符注意:
注意:
write函数的参数是整数类型(函数的参数是整数类型(32位),位),但实际写入的是一个字符(但实际写入的是一个字符(16位)位)Java在读在读/写文件时不需要事先打开文件,写文件时不需要事先打开文件,Java会在读会在读/写的时候自动打开文件写的时候自动打开文件软件学院7.1写入和读出数据文件写入和读出数据文件5.关闭文件关闭文件无用对象回收机制会在回收文件读写对象时自动关无用对象回收机制会在回收文件读写对象时自动关闭文件,但对象回收的时间不定闭文件,但对象回收的时间不定因此,在操作完文件以后,应当及时关闭文件因此,在操作完文件以后,应当及时关闭文件关闭文件时调用文件读关闭文件时调用文件读/写对象的写对象的close函数,而函数,而不是文件对象的关闭函数不是文件对象的关闭函数本例中,需要关闭两个文件:
本例中,需要关闭两个文件:
reader1.close();writer1.close();软件学院7.1写入和读出数据文件写入和读出数据文件例题的执行结果例题的执行结果从“从“data.txt”文件中读取内容并显示:
文件中读取内容并显示:
同时将文本保存在文本文件“同时将文本保存在文本文件“dest.txt”中中:
软件学院7.1写入和读出数据文件写入和读出数据文件例题的执行结果例题的执行结果在屏幕上显示文字时需要注意的事项:
在屏幕上显示文字时需要注意的事项:
FileReader.read()函数返回整型数,显示函数返回整型数,显示时必须把它强制转换成字符类型时必须把它强制转换成字符类型如果不转换,显示结果如下:
如果不转换,显示结果如下:
软件学院7.1写入和读出数据文件写入和读出数据文件二进制数据文件的读写二进制数据文件的读写很多情况下,应用程序希望将数据以二进制很多情况下,应用程序希望将数据以二进制的形式保存在数据文件中的形式保存在数据文件中这种形式的文件无法直接阅读,但效率比文这种形式的文件无法直接阅读,但效率比文本文件更高,程序中使用也更加方便本文件更高,程序中使用也更加方便FileReader/FileWriter类主要用于文本文类主要用于文本文件的读写操作件的读写操作DataInputStream和和DataOutputStream类用以完成二进制数据文件的读写类用以完成二进制数据文件的读写软件学院7.1写入和读出数据文件写入和读出数据文件二进制数据文件的读写步骤二进制数据文件的读写步骤1.创建二进制文件对象创建二进制文件对象二进制文件对象不能使用二进制文件对象不能使用File对象,而应使用对象,而应使用FileInputStream和和FileOutputStream对象对象FileInputStream对象用于文件读出对象用于文件读出FileOutputStream对象用于文件写入对象用于文件写入二进制数据文件一般不能直接阅读,因此后缀也不要二进制数据文件一般不能直接阅读,因此后缀也不要设为“设为“txt”,以免误导用户,以免误导用户FileInputStreamfile1=newFileInputStream(save1.dat);FileOutputStreamfile2=newFileOutputStream(save2.dat);软件学院7.1写入和读出数据文件写入和读出数据文件2.创建文件读写对象创建文件读写对象DataInputStream类用于文件读出的操作类用于文件读出的操作DataOutputStream类用于文件写入的操作类用于文件写入的操作在在DataInputStream类的构造函数中,需要给出类的构造函数中,需要给出FileInputStream对象,作为与文件关联的对象对象,作为与文件关联的对象在在DataOutputStream类的构造函数中,需要给出类的构造函数中,需要给出FileOutputStream对象,作为与文件关联的对象对象,作为与文件关联的对象DataInputStreamin1=newDataInputStream(file1);DataOutputStreamout1=newDataOutputStream(file2);软件学院7.1写入和读出数据文件写入和读出数据文件3.用用DataInputStream类读出数据类读出数据DataInputStream可以读出各种简单类型数据可以读出各种简单类型数据读出每种数据的函数如下:
读出每种数据的函数如下:
booleanreadBoolean();/读出逻辑值读出逻辑值bytereadByte();/读出字节型整数读出字节型整数charreadChar();/读出一个字符读出一个字符shortreadShort();/读出短整数读出短整数intreadInt();/读出整数读出整数longreadLong();/读出长整数读出长整数floatreadFloat();/读出单精度浮点数读出单精度浮点数doublereadDouble();/读出双精度浮点数读出双精度浮点数软件学院7.1写入和读出数据文件写入和读出数据文件3.用用DataOutputStream类写入数据类写入数据DataOutputStream可以写入各种简单数据数据可以写入各种简单数据数据写入每种数据的函数如下:
写入每种数据的函数如下:
voidwriteBoolean(booleanb);/写入逻辑值写入逻辑值voidwriteByte(intv);/写入字节型整数写入字节型整数voidwriteChar(intv);/写入一个字符写入一个字符voidwriteShort(intv);/写入短整数写入短整数voidwriteInt(intv);/写入整数写入整数voidwriteLong(longv);/写入长整数写入长整数voidwriteFloat(floatv);/写入单精度浮点数写入单精度浮点数voidwriteDouble(doublev);/写入双精度浮点数写入双精度浮点数voidwriteChars(Strings);/写入字符串写入字符串软件学院7.1写入和读出数据文件写入和读出数据文件读出数据时的注意事项读出数据时的注意事项DataInputStream类并不能判断数据类型类并不能判断数据类型它仅仅根据函数的要求读入相应长度的二进制字节它仅仅根据函数的要求读入相应长度的二进制字节,再把它解释成数值,再把它解释成数值例:
例:
readInt函数会从数据文件中读出函数会从数据文件中读出4个字节,个字节,再将它转化为整数再将它转化为整数DataInputStream读出的数据应当严格地与写入数读出的数据应当严格地与写入数据的顺序和类型对应据的顺序和类型对应例:
写入例:
写入3个浮点数和个浮点数和1个整数,就一定要按顺序个整数,就一定要按顺序读出读出3个浮点数和个浮点数和1个整数,不能多也不能少个整数,不能多也不能少软件学院7.1写入和读出数据文件写入和读出数据文件4.字符串的读出字符串的读出字符串的长度不定,很难确定其终点,因此字符串字符串的长度不定,很难确定其终点,因此字符串的读出比较麻烦的读出比较麻烦解决办法:
在字符串的末尾写入一个回车解决办法:
在字符串的末尾写入一个回车符“符“n”,或者空字符“,或者空字符“
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 文件 数据流
![提示](https://static.bdocx.com/images/bang_tan.gif)