Java高级-JavaIO系统.ppt
《Java高级-JavaIO系统.ppt》由会员分享,可在线阅读,更多相关《Java高级-JavaIO系统.ppt(54页珍藏版)》请在三一办公上搜索。
1、Java IO系统,第 二 章,本章相关词汇,本章目标,复习IO包,强化区分字符/字节的区别运用FileInputStream类和FileOutputStream类完成复制文件的功能运用FileReader类和FileWriter类配合BufferedReader类和BufferedWriter类来进行字符的读取和写入功能运用InputStreamReader类和BufferedReader类来完成控制台输入的功能清楚PrintWriter类的使用方式:System.out JSP:out,java.io包简介,java.io包也是Java内置的包,其中包含一系列对文件和目录的属性进行操作,对
2、文件进行读写操作的类;程序中如果要使用到该包中的类,对文件或流进行操作,则必须显式地声明如下语句:import java.io.*;,文件,什么是文件?文件可以认为是相关记录或存放在一起的数据的集合;文件一般是存放在磁盘上的,例如:硬盘、软盘和光盘等等。,File类,File类的对象不但可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录;当创建一个文件对象后,就可以利用它来对文件或目录的属性进行操作,如:文件名、最后修改日期、文件大小等等;需要注意的是,File对象并不能直接对文件进行读/写操作,只能查看文件的属性;,File类的构造方法,File类的构造方法有4种
3、重载方式,常用的如下:如:/在当前目录下创建一个与aaa.txt文件名相关联的文件对象File f1=new File(aaa.txt);/指明详细的路径以及文件名,请注意双斜线File f2=new File(D:JavaHello.java);,File类中的常用方法,File类示例,public class FileDemo public static void main(String args)/创建一个文件对象,使之与一个文件关联 File file=new File(test.txt);/显示与文件有关的属性信息 System.out.println(文件或目录是否存在:+file
4、.exists();System.out.println(是文件吗:+file.isFile();System.out.println(是目录吗:+file.isDirectory();System.out.println(名称:+file.getName();System.out.println(绝对路径:+file.getAbsolutePath();System.out.println(最后修改时间:+file.lastModified();System.out.println(文件大小:+file.length();,stream(流),流是指一连串流动的数据信号,是以先进先出的方式发
5、送和接收数据的通道。,InputStream,来自数据源的数据流,OutputStream,流向目的地的数据流,流(续),流的类型,根据流动方向的不同,流分为输入流和输出流;对于输入和输出流,由于传输格式的不同,又分为字节流和字符流:字节流是指8位的通用字节流,以字节为基本单位,在java.io包中,对于字节流进行操作的类大部分继承于InputStream(输入字节流)类和OutputStream(输出字节流)类;字符流是指16位的Unicode字符流,以字符(两个字节)为基本单位,非常适合处理字符串和文本,对于字符流进行操作的类大部分继承于Reader(读取流)类和Writer(写入流)类。
6、,使用FileInputStream类读文件,FileInputStream类称为文件输入流,继承于InputStream类,是进行文件读操作的最基本类;它的作用是将文件中的数据输入到内存中,我们可以利用它来读文件;由于它属于字节流,因此在读取Unicode字符(如中文)的文件时可能会出现问题。,FileInputStream类的构造方法,FileInputStream类的构造方法有3种重载方式,以下是常用的几种。,FileInputStream类的常用方法,FileInputStream对象读文件示例1,public class FileInputStreamDemo1 public sta
7、tic void main(String args)try File file=new File(test.txt);/创建文件对象/使用文件对象创建文件输入流对象,相当于打开文件 FileInputStream fis=new FileInputStream(file);for(int i=0;i file.length();i+)char ch=(char)(fis.read();/循环读取字符 System.out.print(ch);System.out.println();fis.close();/关闭流 catch(FileNotFoundException fnfe)System
8、.out.println(文件打开失败。);catch(IOException ioe)ioe.printStackTrace();,FileInputStream对象读文件示例2,public class FileInputStreamDemo2 public static void main(String args)try File file=new File(test.txt);/创建文件对象 FileInputStream fis=new FileInputStream(file);/根据文件的字节长度创建字节数组 byte buf=new byte(int)(file.length(
9、);fis.read(buf);/读取文件中的数据存放到字节数组中 String str=new String(buf);/利用字节数组创建字符串 System.out.println(str);/打印字符串 fis.close();/关闭流 catch(FileNotFoundException fnfe)System.out.println(文件打开失败。);catch(IOException ioe)ioe.printStackTrace();,使用FileOutputStream类写文件,FileOutputStream类称为文件输出流,继承于OutputStream类,是进行文件写操
10、作的最基本类;它的作用是将内存中的数据输出到文件中,我们可以利用它来写文件。,FileOutputStream类的构造方法,FileOutputStream类的构造方法有5种重载方式,以下是常用的几种。,FileOutputStream类的常用方法,FileOutputStream对象写文件示例1,public class FileOutputStreamDemo1/在函数内部不进行异常处理,将异常抛出函数外部 public static void main(String args)throws IOException String str=Hello world!;File file=new
11、 File(test.txt);/创建文件对象/通过文件对象创建文件输出流对象/附加第二个参数true,指定进行文件追加,默认为不追加 FileOutputStream fos=new FileOutputStream(file,true);/逐个将字符写入到文件中 for(int i=0;i str.length();i+)fos.write(str.charAt(i);fos.close();/关闭流,FileOutputStream对象写文件示例2,public class FileOutputStreamDemo2/在函数内部不进行异常处理,将异常抛出函数外部 public stati
12、c void main(String args)throws Exception String str=I Love Java;/通过文件名创建文件输出流对象 FileOutputStream fos=new FileOutputStream(test.txt);/将字符串转化为字节数组 byte buffer=str.getBytes();/将字节数组中包含的数据一次性写入到文件中 fos.write(buffer);/关闭流 fos.close();,FileInputStream/FileOutputStream小结,FileInputStream类和FileOutputStream类是
13、成对出现的,一个进行输入(读文件)操作,一个进行输出(写文件)操作;由于采用字节方式进行数据传输,不必考虑数据的格式问题,这两个类对文件操作的效率较高;可以使用这两个类完成复制文件的操作。,复制文件示例,public class CopyFileDemo public static void main(String args)throws IOException File srcFile=new File(src.dat);/源文件对象 File destFile=new File(dest.dat);/目标文件对象 if(!(destFile.exists()/判断目标文件是否存在 dest
14、File.createNewFile();/如果不存在则创建新文件/使用源文件对象创建文件输入流对象 FileInputStream fis=new FileInputStream(srcFile);/使用目标文件对象创建文件输出流对象 FileOutputStream fos=new FileOutputStream(destFile);byte buf=new byte1024;/创建字节数组,作为临时缓冲 System.out.println(开始复制文件.);while(fis.read(buf)!=-1)/循环从文件输入流中读取数据 fos.write(buf);/写入到文件输出流中
15、 System.out.println(文件复制成功!);fis.close();/关闭流 fos.close();,字符流,FileInputStram类和FileOutputStream类虽然可以高效率地读/写文件,但对于Unicode编码的文件,使用它们有可能出现乱码;考虑到Java是跨平台的语言,要经常操作Unicode编码的文件,使用字符流操作文件是有必要的;使用字符流将涉及到以下4个类:FileReader类和FileWriter类;BufferedReader类和BufferedWriter类。,FileReader类,FileReader类称为文件读取流,允许以字符流的形式对文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 高级 JavaIO 系统

链接地址:https://www.31ppt.com/p-5436267.html