收藏 分销(赏)

Java高级-----Java-IO系统PPT.ppt

上传人:精**** 文档编号:10509205 上传时间:2025-05-31 格式:PPT 页数:54 大小:1.01MB
下载 相关 举报
Java高级-----Java-IO系统PPT.ppt_第1页
第1页 / 共54页
Java高级-----Java-IO系统PPT.ppt_第2页
第2页 / 共54页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,Page,*,单击此处编辑母版标题样式,Java,IO,系统,第 二 章,Page,1,本章相关词汇,单 词,说 明,input,输入,output,输出,file,文件,档案,directory,目录,stream,流,write,写,书写,read,读,阅读,source,源头,来源,destination,目标,目的地,print,打印,Page,2,本章目标,复习,IO,包,强化区分字符,/,字节的区别,运用,FileInputStream,类和,FileOutputStream,类完成复制文件的功能,运用,FileReader,类和,FileWriter,类配合,BufferedReader,类和,BufferedWriter,类来进行字符的读取和写入功能,运用,InputStreamReader,类和,BufferedReader,类来完成控制台输入的功能,清楚,PrintWriter,类的使用方式,:System.out JSP:out,Page,3,java.io,包简介,java.io,包也是,Java,内置的包,其中包含一系列对文件和目录的属性进行操作,对文件进行读写操作的类;,程序中如果要使用到该包中的类,对文件或流进行操作,则必须显式地声明如下语句:,import,java.io.*;,Page,4,文件,什么是文件?,文件可以认为是相关记录或存放在一起的数据的集合;,文件一般是存放在磁盘上的,例如:硬盘、软盘和光盘等等。,Page,5,File,类,File,类的对象不但可以表示文件,还可以表示目录,在程序中一个,File,类对象可以代表一个文件或目录;,当创建一个文件对象后,就可以利用它来对文件或目录的,属性,进行操作,如:文件名、最后修改日期、文件大小等等;,需要注意的是,,File,对象并不能直接对文件进行读,/,写操作,只能查看文件的属性;,Page,6,File,类的构造方法,File,类的构造方法有,4,种重载方式,常用的如下:,如:,/,在当前目录下创建一个与,aaa.txt,文件名相关联的文件对象,File f1=,new,File(,aaa.txt,);,/,指明详细的路径以及文件名,请注意双斜线,File f2=,new,File(,D:JavaHello.java,);,构 造 方 法,说 明,File(String pathname),指定文件(或目录)名和路径创建文件对象,Page,7,File,类中的常用方法,方 法 原 型,说 明,boolean exists(),判断文件是否存在,存在返回,true,,否则返回,false,boolean isFile(),判断是否为文件,是文件返回,true,,否则返回,false,boolean isDirectory(),判断是否为目录,是目录返回,true,,否则返回,false,String getName(),获得文件的名称,String getAbsolutePath(),获得文件的绝对路径,long length(),获得文件的长度(字节数),boolean createNewFile(),throws IOException,创建新文件,创建成功返回,true,,否则返回,false,,有可能抛出,IOException,异常,必须捕捉,boolean delete(),删除文件,删除成功返回,true,,否则返回,false,Page,8,File,类示例,public,class,FileDemo,public,static,void,main(String args),/,创建一个文件对象,使之与一个文件关联,File file=,new,File(,test.txt,);,/,显示与文件有关的属性信息,System.out.println(,文件或目录是否存在:,+file.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();,Page,9,stream,(流),流是指一连串流动的数据信号,是以先进先出的方式发送和接收数据的通道。,A,B,C,D,E,F,InputStream,来自数据源的数据流,OutputStream,流向目的地的数据流,Page,10,流(续),Page,11,流的类型,根据流动方向的不同,流分为,输入流,和,输出流,;,对于输入和输出流,由于传输格式的不同,又分为,字节流,和,字符流,:,字节流是指,8,位的通用字节流,以字节为基本单位,在,java.io,包中,对于字节流进行操作的类大部分继承于,InputStream,(输入字节流)类和,OutputStream,(输出字节流)类;,字符流是指,16,位的,Unicode,字符流,以字符(两个字节)为基本单位,非常适合处理字符串和文本,对于字符流进行操作的类大部分继承于,Reader,(读取流)类和,Writer,(写入流)类。,Page,12,使用,FileInputStream,类读文件,FileInputStream,类称为文件输入流,继承于,InputStream,类,是进行文件读操作的最基本类;,它的作用是将文件中的数据输入到内存中,我们可以利用它来读文件;,由于它属于字节流,因此在读取,Unicode,字符(如中文)的文件时可能会出现问题。,Page,13,FileInputStream,类的构造方法,FileInputStream,类的构造方法有,3,种重载方式,以下是常用的几种。,构 造 方 法,说 明,FileInputStream(File file),throws FileNotFoundException,使用,File,对象创建文件输入流对象,如果文件打开失败,将抛出异常,FileInputStream(String name),throws FileNotFoundException,使用文件名或路径创建文件输入流对象,如果文件打开失败,将抛出异常,Page,14,FileInputStream,类的常用方法,方 法 原 型,说 明,int read(),throws IOException,读取文件中的数据,一次读取一个字节,读取的数据作为返回值返回,如果读到文件末尾则返回,-1,,有可能抛异常,必须捕捉,int read(byte b),throws IOException,读取文件中的数据,将读到的数据存放到,byte,型数组中,并返回读取的字节的数量,未读到数据返回,-1,,有可能抛异常,必须捕捉,void close(),throws IOException,关闭流对象,有可能抛异常,必须捕捉,Page,15,FileInputStream,对象读文件示例,1,public,class,FileInputStreamDemo1,public,static,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.out.println(,文件打开失败。,);,catch,(IOException ioe),ioe.printStackTrace();,Page,16,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();,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();,Page,17,使用,FileOutputStream,类写文件,FileOutputStream,类称为文件输出流,继承于,OutputStream,类,是进行文件写操作的最基本类;,它的作用是将内存中的数据输出到文件中,我们可以利用它来写文件。,Page,18,FileOutputStream,类的构造方法,FileOutputStream,类的构造方法有,5,种重载方式,以下是常用的几种。,构 造 方 法,说 明,FileOutputStream(File file),throws FileNotFoundException,使用,File,对象创建文件输出流对象,如果文件打开失败,将抛出异常,FileOutputStream(File file,boolean append),throws FileNotFoundException,使用,File,对象创建文件输出流对象,并由参数,append,指定是否追加文件内容,,true,为追加,,false,为不追加,异常情况同上,FileOutputStream(String name),throws FileNotFoundException,直接使用文件名或路径创建文件输出流对象,异常情况同上,FileOutputStream(String name,boolean append),throws FileNotFoundException,直接使用文件名或路径创建文件输出流对象,并由参数,append,指定是否追加,异常情况同上,Page,19,FileOutputStream,类的常用方法,方 法 原 型,说 明,void write(int b),throws IOException,往文件中写数据,一次写一个字节,有可能抛异常,必须捕捉,void write(byte b),throws IOException,往文件中写数据,将,byte,数组中的数据全部写入到文件中,有可能抛异常,必须捕捉,void close(),throws IOException,关闭流对象,有可能抛异常,必须捕捉,Page,20,FileOutputStream,对象写文件示例,1,public,class,FileOutputStreamDemo1,/,在函数内部不进行异常处理,将异常抛出函数外部,public,static,void,main(String args),throws,IOException,String str=,Hello world!,;,File file=,new,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();,/,关闭流,Page,21,FileOutputStream,对象写文件示例,2,public,class,FileOutputStreamDemo2,/,在函数内部不进行异常处理,将异常抛出函数外部,public,static,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();,Page,22,FileInputStream/FileOutputStream,小结,FileInputStream,类和,FileOutputStream,类是成对出现的,一个进行输入(读文件)操作,一个进行输出(写文件)操作;,由于采用字节方式进行数据传输,不必考虑数据的格式问题,这两个类对文件操作的效率较高;,可以使用这两个类完成复制文件的操作。,Page,23,复制文件示例,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(),/,判断目标文件是否存在,destFile.createNewFile();,/,如果不存在则创建新文件,/,使用源文件对象创建文件输入流对象,FileInputStream fis=,new,FileInputStream(srcFile);,/,使用目标文件对象创建文件输出流对象,FileOutputStream fos=,new,FileOutputStream(destFile);,byte,buf=,new,byte,1024;,/,创建字节数组,作为临时缓冲,System.out.println(,开始复制文件,.,);,while,(fis.read(buf)!=-1),/,循环从文件输入流中读取数据,fos.write(buf);,/,写入到文件输出流中,System.out.println(,文件复制成功!,);,fis.close();,/,关闭流,fos.close();,Page,24,字符流,FileInputStram,类和,FileOutputStream,类虽然可以高效率地读,/,写文件,但对于,Unicode,编码的文件,使用它们有可能出现乱码;,考虑到,Java,是跨平台的语言,要经常操作,Unicode,编码的文件,使用字符流操作文件是有必要的;,使用字符流将涉及到以下,4,个类:,FileReader,类和,FileWriter,类;,BufferedReader,类和,BufferedWriter,类。,Page,25,FileReader,类,FileReader,类称为文件读取流,允许以字符流的形式对文件进行读操作,其构造方法有,3,种重载方式,以下是常用的几种:,该类将从文件中逐个地读取字符,效率比较低下,因此一般将该类对象包装到缓冲流中进行操作。,构 造 方 法,说 明,FileReader(File file),throws FileNotFoundException,使用,File,对象创建文件读取流对象,如果文件打开失败,将抛出异常,FileReader(String name),throws FileNotFoundException,使用文件名或路径创建文件读取流对象,如果文件打开失败,将抛出异常,Page,26,BufferedReader,类,BufferedReader,类主要为字符流提供缓冲,以提高效率,其构造方法有,2,种重载方式,以下是常用的几种:,以下是,BufferedReader,类的常用方法:,构 造 方 法,说 明,BufferedReader(Reader in),将字符读取流对象包装成缓冲读取流对象,方 法 原 型,说 明,String readLine(),throws IOException,从缓冲读取流中读取一行字符,以字符串的形式返回,有可能抛异常,必须捕捉,void close(),throws IOException,关闭流对象,有可能抛异常,必须捕捉,Page,27,FileReader,配合,BufferedReader,读文件示例,public,class,RraderDemo,public,static,void,main(String args),throws,IOException,File file=,new,File(,test.txt,);,/,通过文件对象创建文件读取流对象,FileReader fr=,new,FileReader(file);,/,将文件读取流包装成缓冲读取流,BufferedReader br=,new,BufferedReader(fr);,String str;,while,(str=br.readLine()!=,null,),/,逐行读取数据,System.out.println(str);,br.close();,/,关闭流,fr.close();,/,关闭流,Page,28,FileWriter,类,FileWriter,类称为文件写入流,以字符流的形式对文件进行写操作,其构造方法有,5,种重载,以下是常用的几种:,与,FileReader,类相似,,FileWriter,类同样需要使用缓冲流进行包装。,构 造 方 法,说 明,FileWriter(File file),throws IOException,使用,File,对象创建文件写入流对象,如果文件打开失败,将抛出异常,必须捕捉,FileWriter(File file,boolean append),throws IOException,使用,File,对象创建文件写入流对象,并由参数,append,指定是否追加,异常情况同上,FileWriter(String name),throws IOException,直接使用文件名或路径创建文件写入流对象,异常情况同上,FileWriter(String name,boolean append),throws IOException,直接使用文件名或路径创建文件写入流对象,并由参数,append,指定是否追加,异常情况同上,Page,29,BufferedWriter,类,BufferedWriter,类可以为,FileWriter,类提供缓冲,其构造方法有,2,种重载方式,以下是常用的几种:,以下是,BufferedWriter,类的常用方法:,构 造 方 法,说 明,BufferedWriter(Writer out),将字符写入流对象包装成缓冲写入流对象,方 法 原 型,说 明,void write(String str),throws IOException,将一行字符串写入到缓冲写入流中,有可能抛异常,必须捕捉,void newLine(),throws IOException,将一个回车换行符写入到文件中,从而达到换行的效果,有可能抛异常,必须捕捉,Page,30,FileWriter,配合,BufferedWriter,写文件示例,public,class,WriterDemo,public,static,void,main(String args),throws,IOException,File file=,new,File(,test.txt,);,/,通过文件对象创建文件输出字符流对象,FileWriter fw=,new,FileWriter(file);,/,将文件输出字符流包装成缓冲流,BufferedWriter bw=,new,BufferedWriter(fw);,bw.write(,大家好!,);,bw.write(,我正在学习,Java,。,);,bw.newLine();,/,换个新行,bw.write(,请多多指教。,);,bw.newLine();,/,换新行,bw.write(,Luckybug,);,bw.close();,/,关闭流,fw.close();,/,关闭流,Page,31,PrintWriter,类,PrintWriter,类称为打印写入流,向文本输出流打印对象的格式化表示形式,它能够用于将字节的输出流转成字符的输出流。,其构造方法有,8,种重载,以下是常用的几种:,构 造 方 法,说 明,PrintWriter(OutputStreamout),根据现有的,OutputStream,创建不带自动行刷新的新,PrintWriter。,PrintWriter(OutputStreamout,booleanautoFlush),通过现有的,OutputStream,创建新的,PrintWriter。,PrintWriter(Filefile),使用指定文件创建不具有自动行刷新的新,PrintWriter。,PrintWriter(StringfileName),创建具有指定文件名称且不带自动行刷新的新,PrintWriter,。,Page,32,PrintWriter,类的常用方法,方 法 原 型,说 明,void print(String s),throws IOException,打印字符串。,void println(String s),throws IOException,打印,String,,然后终止该行。,PrintWriter printf(String format,Objectargs),throws IOException,使用指定格式字符串和参数将格式化的字符串写入此,writer,的便捷方法。,void write(String s),throws IOException,写入字符串。,void flush(),throws IOException,刷新该流的缓冲。,void close(),throws IOException,关闭该流。,Page,33,java.io.PrintWriter,PrintWriter,是字符输出流,它提供格式化的输出功能,由于构造方法的支持,允许将字节流转化成字符流的形式;,它的构造方法共有,8,种重载,以下是常用的几种:,构 造 方 法,说 明,PrintWriter(OutputStream out),利用现有的,OutputStream,构造格式打印流,但不带自动刷新缓存的功能,PrintWriter(OutputStream out,boolean autoFlush),利用现有的,OutputStream,构造格式打印流,由参数,autoFlush,指定是否带自动刷新缓存的功能,PrintWriter(Writer out),利用现有的,Writer,构造格式打印流,但不带自动刷新缓存的功能,PrintWriter(Writer out,boolean autoFlust),利用现有的,Writer,构造格式打印流,由参数,autoFlush,指定是否带自动刷新缓存的功能,PrintWriter(File file),throws FileNotFoundException,针对由,file,指定的文件对象,创建格式打印流,但不带自动刷新缓存的功能,Page,34,PrintWriter,的常用方法,方 法 原 型,说 明,void print(X x),该方法提供,8,种重载,可以输出任意数据类型,但输出时不带换行效果,因此,也不会自动刷新缓存,void println(X x),该方法提供,10,种重载,可以输出任意数据类型,有换行效果,如果构造方法设置为自动刷新的话,该方法的自动刷新功能将生效,void flush(),刷新缓存区,void close(),关闭流,Page,35,PrintWriter,使用注意事项,PrintWriter,可以不配合,BufferedWriter,类一起使用。,如果启用了自动刷新,则只有在调用,println,、,printf,或,format,的其中一个方法时才可能完成此操作,否则不能完成自动刷新的功能。,Page,36,从控制台接受输入,System.in,的,read,方法可以从控制台接受输入;,但由于,in,实际上是一个,InputStream,类的对象,它只能以字节形式接收数据,并且一次只能接受一个字节,这使输入操作很不便;,必须将,System.in,进行处理,才可以顺利地从控制台接受输入,这将使用到,:,InputStreamReader,类,BufferedReader,类,Page,37,转换和包装,System.in,InputStreamReader,类用于将,InputStream,类型的字节输入流对象转换成,Reader,类型的字符读取流对象;,其构造方法有,4,种重载方式,常用的如下:,可以使用它来转换,System.in,,如:,InputStreamReader isr=,new,InputStreamReader(System.in);,这样的字符流效率很低,再使用,BufferedReader,类来为其建立缓冲,如:,BufferedReader br=,new,BufferedReader(isr);,这样,就可以从控制台接受输入了。,构 造 方 法,说 明,InputStreamReader(InputStream in),将,InputStream,对象转换成,Reader,对象,Page,38,从控制台接受输入示例,public,class,ConsoleInputDemo,public,static,void,main(String args),throws,IOException,/,将,System.in,转化成字符流对象,InputStreamReader isr=,new,InputStreamReader(System.in);,/,用缓冲流进行包装,BufferedReader br=,new,BufferedReader(isr);,System.out.println(,请输入您的姓名:,);,String name=br.readLine();,/,接受输入,System.out.println(,请输入您的年龄:,);,int,age=Integer.parseInt(br.readLine();,/,接受输入,System.out.println(,您的姓名:,+name);,System.out.println(,您的年龄:,+age);,br.close();,/,关闭流,isr.close();,/,关闭流,Page,39,从控制台输入并写入到文件示例,/*,本例从控制台接受输入,然后写入到文件中,直到用户输入,!,为止*,/,File file=,new,File(,input.txt,);,/,创建文件对象,if,(!file.exists(),/,判断该文件是否存在,如果不存在则创建新文件,file.createNewFile();,FileWriter fr=,new,FileWriter(file);,/,针对文件对象创建文件写入流对象,BufferedWriter bw=,new,BufferedWriter(fr);,/,为文件写入流建立缓冲流,/,将控制台输入对象转化成字符流,并建立缓冲流,BufferedReader bin=,new,BufferedReader(,new,InputStreamReader(System.in);,String str=bin.readLine();,/,接受从控制台输入的一行字符串,while,(!(str.equals(,!,),/,如果输入,!,则代表输入结束,bw.write(str);,/,将从控制台输入的字符串写入到文件中,bw.newLine();,/,换新行,str=bin.readLine();,/,再从控制台接受输入,/,关闭所有已经打开的流,bw.close();,fr.close();,bin.close();,Page,40,对象的序列化,1,将对象转换为字节流保存起来,并在日后还原这个对象,这种机制叫做对象序列化。序列化的过程就是对象写入字节流和从字节流中读取对象,java,对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的“深克隆”,即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。,一个对象要想能够实现序列化,,必须实现,Serializable,接口,Java,引入对象串行化上是为了实现两个特性:,Java Beans,和,RMI,Page,41,对象序列化,2,当一个对象被序列化时,只保存对象的非静态成员变量,不能保存任何的成员方法和静态的成员变量。,如果一个对象的成员变量是一个对象,那么这个对象的数据成员也会被保存。,如果一个可序列化的对象包含对某个不可序列化的对象的引用,那么整个序列化操作将会失败,并且会抛出一个,NotSerializableException,。我们可以将这个引用标记为,transient,,那么对象仍然可以序列化。,ObjectInputStream,ObjectOutputStream,Page,42,NIO,缓冲器,Buffer,类,新,I/O,通过使用,Buffer,读写数据避免了资源浪费。,Buffer,对象是线性的,有序的数据集合。,每个,Buffer,有以下的属性,属性,说,明,capacity,这个,Buffer,最多能放多少数据。,capacity,一般在,buffer,被创建的时候指定,limit,在,Buffer,上进行的读写操作都不能越过这个下标。当写数据到,buffer,中时,,limit,一般和,capacity,相等,当读数据时,,limit,代表,buffer,中有效数据的长度。,position,读,/,写操作的当前下标。当使用,buffer,的相对位置进行读,/,写操作时,读,/,写会从这个下标进行,并在操作完成后,,buffer,会更新下标的值。,Page,43,NIO,缓冲器,Buffer,类,Buffer,提供了改变以上三个属性的方法,属性,说,明,clear(),清除此缓冲区。将位置设置为,0,,将限制设置为容量,flip(),将限制设置为当前位置,然后将位置设置为,0,rewind(),将位置设置为,0,,不改变极限,Page,44,NIO,通道,Channel,接口,Channel,表现了一个可以进行,IO,操作的通道(比如,通过,FileChannel,,我们可以对文件进行读写操作)。,java.nio.channels,包含了文件系统和网络通讯相关的,channel,类。这个包通过,Selector,和,SelectableChannel,这两个类,还定义了一个进行异步(,non-blocking,),IO,操作的,API,,这对需要高性能,IO,的应用非常重要。,Channel,中只有两个方法:,isOpen(),:判断此通道是否处于打开状态。,close(),:关闭此通道,Page,45,NIO,字符集,Charset,类,Java.nio.charset.Charset,处理了字符转换问题。此类定义了用于创建解码器和编码器以及获取与,charset,关联的各种名称的方法,它通过构造,CharsetEncoder,和,CharsetDecoder,将字符序列转换成字节和逆转换。,Page,46,NIO,选择器,Selector,类,在过去的阻塞,I/O,中,我们一般知道什么时候可以向,stream,中读或写,因为方法调用直到,stream,准备好时返回。但是使用非阻塞通道,我们需要一些方法来知道什么时候通道准备好了。在,NIO,包中,设计,Selector,就是为了这个目的。,SelectableChannel,可以注册特定的事件,而不是在事件发生时通知应用通道跟踪事件。然后,当应用调用,Selector,上的任意一个,selection,方法时,它查看注册了的通道看是否有任何感兴趣的事件发生。,Page,47,附录:,IO,流的继承体系,InputStream,FileInputStream,StringBufferInputStream,FilterInputStream,DataInputStream,BufferedInputStream,PipedInputStream,SequenceInputStream,LineNumberInputStream,PushbackInputStream,字节输入流,Page,48,附录:,IO,流的继承体系,OutputStream,FileOutputStream,PipedOutputStream,字节输出流,FilterOutputStream,ByteArrayOutputStream,DataOutputStream,PrintStream,BufferedOutputStream,Page,49,附录:,IO,流的继承体系,Reader,BufferedReader,字符输入流,CharArrayReader,PipedReader,StringReader,LineNumberReader,FilterReader,InputStreamReader,FileReader,PushbackReader,Page,50,附录:,IO,流的继承体系,Writer,BufferedWriter,字符输出流,CharArrayWriter,StringWriter,PipedWriter,PrintWriter,OutputStreamWriter,FileWriter,Page,51,总结,1,java.io,包是,Java,内置的包,其中包含一系列对输入,/,输出进行操作的类;,File,类的对象可以访问文件(或目录)的属性,但不可以进行读,/,写操作;,从方向上讲,流分为输入流和输出流,但从格式上区分的话,流分为字节流和字符流;,使用,FileInputStream,类和,FileOutputStream,类以字节流方式对文件进行读,/,写操作,这是操作文件最基本的两个类;,Page,52,总结,2,FileReader,类和,FileWriter,类配合,BufferedReader,类和,BufferedWriter,类可以以字符流方式对文件进行读,/,写操作
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服