《23-IO电子课件 Java应用程序设计——从模型到代码.ppt》由会员分享,可在线阅读,更多相关《23-IO电子课件 Java应用程序设计——从模型到代码.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java面向对象程序设计第二十三次课数据库知识回顾常见的数据库管理系统有哪些?SQL是什么?常见的对数据库进行增删改查的语句怎么写?简要叙述数据库连接、并进行相关的数据处理的步骤。输入输出java.io 包 目标运用File类进行文件操作理解流,标准输入/输出流的概念运用FileInputStream和FileOutputStream类读写文本文件运用BufferedReader和BufferedWriter类读写文本文件运用DataInputStream和DataOutputStream类 读写二进制文件4文件 3-1什么是文件?文件可认为是相关记录或放在一起的数据的集合文件一般存储在哪里?
2、JAVA程序一般通过什么去访问文件属性?JAVA API:java.io.File 类5文件 3-26File File 类类类类物理文件或目录构造文件对象操作文件或目录的属性(路径、权限、日期和时间等)文件 3-37演示:示例1importjava.io.File;Filefile=newFile(args0);System.out.println(文件或目录是否存在:+file.exists();System.out.println(是文件吗:+file.isFile();System.out.println(是目录吗:+file.isDirectory();System.out.prin
3、tln(名称:+file.getName();System.out.println(路径:+file.getPath();System.out.println(绝对路径:+file.getAbsolutePath();System.out.println(最后修改时间:+file.lastModified();System.out.println(“文件大小:”+file.length()+“字节”);流 3-1流是指一连串流动的流是指一连串流动的字符,是以先进先出方式发送信息先进先出方式发送信息的通道8InputStreamOutputStream来自数据源的数据流来自数据源的数据流流向目的
4、地的数据流流向目的地的数据流AECDBF流 3-29流 3-3Java流的分类字节流字节流 8 位位 InputStream OutputStream字符流字符流 16 位位 Unicode Reader Writer10文件的读写文本文件的读写用用FileInputStream读文本文件读文本文件用用FileOutputStream写文本文件写文本文件用用BufferedReader读文本文件读文本文件用用BufferedWriter写文本文件写文本文件二进制文件的读写11用FileInputStream 读文本文件3-1引入相关的类 import java.io.IOException;i
5、mport java.io.InputStream;import java.io.FileInputStream;构造一个文件输入流对象 InputStream fileobject=new FileInputStream(“text.txt”);12用FileInputStream 读文本文件3-2利用文件输入流类的方法读取文本文件的数据fileobject.available();/可读取的字节数fileobject.read();/读取文件的数据 关闭文件输入流对象fileobject.close();13用FileInputStream 读文本文件3-314演示:示例 2publics
6、taticvoidmain(Stringargs)throwsIOExceptionintsize;InputStreamfileobject=newFileInputStream(args0);System.out.println(“可读取的字节数:+(size=fileobject.available();chartext=newchar200;for(intcount=0;countsize;count+)textcount=(char)fileobject.read();System.out.print(textcount);System.out.println();fileobjec
7、t.close();使用read()方法一次读取一个字符,然后将字符存储在字符数组中并显示字符创建一个FileInputStream对象使用available()方法确定文件的大小用FileOutputStream 写文本文件3-1引入相关的类import java.io.IOException;import java.io.OutputStream;import java.io.FileOutputStream;构造一个文件输出流对象OutputStream fos=new FileOutputStream(Text.txt);15用FileOutputStream 写文本文件3-2利用文件
8、输出流的方法写文本文件String str=好好学习Java;byte words =str.getBytes();fos.write(words,0,words.length);关闭文件输出流fos.close();16用FileOutputStream 写文本文件 3-317演示:示例3 publicstaticvoidmain(Stringargs)tryStringstr=好好学习Java;bytewords=str.getBytes();OutputStreamfos=newFileOutputStream(Text.txt);fos.write(words,0,words.leng
9、th);System.out.println(Text文件已更新!);fos.close();catch(IOExceptionobj)System.out.println(创建文件时出错!);使用write()方法将数据写入文件访问文件创建目录和文件FileInputStream/FileOutputStream问题:读入的中文字符乱码FileInputStream/FileOutputStream输出流写入完毕要调用flush()将缓冲区内容写入文件。输入流和输出流读写完毕都要调用close()关闭流,释放资源。这种读写方式适合读写二进制文件,如图片、声音、视频等文件。FileReader
10、/FileWriter适合读写文本文件。引入相关的类import java.io.FileReader;import java.io.BufferedReader;import java.io.IOException;构造一个BufferedReader对象FileReader fr=new FileReader(mytest.txt);BufferedReader br=new BufferedReader(fr);23用用BufferedReader 读文本文件读文本文件 3-1利用BufferedReader的方法读取文本文件的数据 br.readLine();/读取一行数据,返回字符串
11、关闭相关的流对象 br.close();fr.close();24用用BufferedReader 读文本文件读文本文件 3-2用用BufferedReader 读文本文件读文本文件 3-325演示:示例 4/*创建一个FileReader对象.*/FileReaderfr=newFileReader(mytest.txt);/*创建一个BufferedReader对象.*/BufferedReaderbr=newBufferedReader(fr);/*读取一行数据.*/Stringline=br.readLine();while(line!=null)System.out.println(
12、line);line=br.readLine();/*流的关闭.*/br.close();fr.close();创建一个FileReader对象创建一个BufferedReader对象引入相关的类import java.io.FileWriter;import java.io.BufferedWriter;import java.io.IOException;构造一个BufferedWriter对象 FileWriter fw=new FileWriter(mytest.txt);BufferedWriter bw=new BufferedWriter(fw);26用用BufferedWrit
13、er 写文本文件写文本文件 3-1利用BufferedWriter的方法写文本文件bw.write(“hello”);相关流对象的清空和关闭bw.flush();fw.close();27用用BufferedWriter 写文本文件写文本文件 3-2用用BufferedWriter 写文本文件写文本文件 3-328演示:示例5/*创建一个FileWriter对象*/FileWriterfw=newFileWriter(mytest.txt);/*创建一个BufferedWriter对象*/BufferedWriterbw=newBufferedWriter(fw);bw.write(大家好!)
14、;bw.write(我正在学习BufferedWriter。);bw.newLine();bw.write(请多多指教!);bw.newLine();bw.write(email:studyjb-);bw.flush();fw.close();创建一个BufferedWriter对象创建一个FileWriter对象引入相关的类 import java.io.FileInputStream;import java.io.DataInputStream;构造一个数据输入流对象 FileInputStream fis=new FileInputStream(“HelloWorld.class”);D
15、ataInputStream dis=new DataInputStream(fis);利用数据输入流类的方法读取二进制文件的数据数据输入流类的方法读取二进制文件的数据 dis.readInt();/读取出来的是整数 dis.readByte();/读取出来的数据是Byte类型 数据输入流的关闭数据输入流的关闭 dis.close();/关闭数据输入流 29用用DataInputStream 读二进制文件读二进制文件引入相关的类 import java.io.FileOutputStream;import java.io.DataOutputStream;构造一个数据输出流对象 FileOut
16、putStream outFile=new FileOutputStream(temp.class);DataOutputStream out=new DataOutputStream(outFile);利用文件输出流类的方法写二进制文件 out.writeByte(1);/把数据写入二进制文件 数据输出流的关闭数据输出流的关闭 out.close();30用用DataOutputStream 写二进制文件写二进制文件 FileInputStream fis =new FileInputStream(ReadAndWriteBinaryFile.class);DataInputStream d
17、is=new DataInputStream(fis);FileOutputStream outFile=new FileOutputStream(temp.class);DataOutputStream out=new DataOutputStream(outFile);int temp;while(temp=dis.read()!=-1)out.write(temp);fis.close();out.close();31读写二进制文件演示演示:示例6File 类用于访问文件系统流是指一连串流动的字符,是以先进先出方式发送信息的通道流可以分为输入输出流,也可以分为字节流和字符流运用FileInputStream和FileOutputStream可以读写文本文件运用BufferedReader和BufferedWriter也可以读写文本文件,且性能较高运用DataInputStream和DataOutputStream可以读写二进制文件32总结缓冲流创建内部缓冲区数组,提高读写效率BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter通过flush()方法一次性写入文件;通过readLine()方法一次读取一行;综合示例open/save