文件与IO流.ppt
《文件与IO流.ppt》由会员分享,可在线阅读,更多相关《文件与IO流.ppt(28页珍藏版)》请在冰豆网上搜索。
![文件与IO流.ppt](https://file1.bdocx.com/fileroot1/2022-10/7/4e835daf-eda6-4efa-9dc4-25548e795fbc/4e835daf-eda6-4efa-9dc4-25548e795fbc1.gif)
”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)第十三课第十三课文件与文件与IOIO流流”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)回回顾顾1、子类重写父类中的方法能否缩小访问权限和抛出更多的异常?
nono2、方法重载需要满足哪些条件?
在同一方法中,方法名相同,参数列表不同4、包装类型可以与基本类型之间相互赋值吗?
可以5、将数字字串转换为基本数字类型该如何操作?
parseXXX6、String类与StringBuffer类有何区别?
string不可以被改变stringbuffer只有一个版本7、java.lang包需要导入么,importjava.lang.*?
不需要,它是自动导入的8、Integersum=null;intsum02=sum.parseInt(“123”);上面的代码片段操作正确么?
Y9、一个类中的静态块在什么时候被执行?
类中有入口main方法初始化一个类调用Javaapi反射方法(仅执行一次)10、静态块中可以操作实例成员(实例变量与实例方法)吗?
不能11、protected提供的访问权限操作范围是什么?
可被声明它的类和派生类的子类以及同一个包中的类访问12、this与super在调用成员方法和构造方法时有什么不同点?
this调用是指向的本类,super是指向调用的父类”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)本课案例本课案例使用文件流操作完成文件的复制、剪切等操作”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)本章目标本章目标运用File类进行文件和目录操作理解流、标准输入/输出流的概念运用FileInputStream和FileOutputStream类读写文本文件运用BufferedReader和BufferedWriter类读写文本文件运用ObjectOutputStream与ObjectInputStream实现对象流的读写操作运用ByteArrayInputStream与ByteArrayOutputStream实现对象在内存中的序列化与反序列化”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)文文件件什么是文件文件可认为是相关记录或放在一起的数据的集合,目录可以看成是一种特殊的文件,文件类型中的一种,可以再包含其他的目录和文件类型。
而一般文件是文本等内容,不能再包含其他文件类型。
文件一般存储在哪里?
JAVA程序一般通过什么去访问文件属性?
JAVAAPI:
java.io.File类”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)文文件件FileFileFile类类类类类类物理文件或目录构造文件对象操作文件或目录的属性(路径、权限、日期和时间等)”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)文文件件importjava.io.File;Filefile=newFile(c:
/test/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.getPath();System.out.println(绝对路径绝对路径:
+file.getAbsolutePath();System.out.println(父目录:
父目录:
+file.getParent();System.out.println(是否可读:
是否可读:
+file.canRead();System.out.println(是否可写:
是否可写:
+file.canWrite();Datenow=newDate(file.lastModified();SimpleDateFormatsdf=newSimpleDateFormat(yyyy年年MM月月dd日日hh:
mm:
ss);System.out.println(最后修改时间最后修改时间:
+sdf.format(now);System.out.println(文件大小文件大小:
+file.length()+字节字节);”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)流流流是指一连串流动的字符,是以先进先出方式发送信息的通道InputStreamOutputStream来自数据源的数据流来自数据源的数据流流向目的地的数据流流向目的地的数据流AECDBF”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)水池(数据源)水池(数据源)进水口(输入流)进水口(输入流)出水口(输出流)出水口(输出流)下水道(目标)下水道(目标)开关开关房子(程序)房子(程序)输入输出流输入输出流读读写写按流向分为输入流和输出流。
所谓输入输出是针对程序而言的,换言之输入流是读文件的流,输出流是写文件的流。
流与数据源和程序之间的关系如下图所示:
”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)字节字符流字节字符流输入输出流又分为字节流(类名以Stream结尾)和字符流(Reader和Writer)两种形式字节流8位InputStreamOutputStream字符流16位UnicodeReaderWriter”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)文件的读写文件的读写文本文件的读写用用FileInputStream读文本文件读文本文件用用FileOutputStream写文本文件写文本文件用用BufferedReader读文本文件读文本文件用用BufferedWriter写文本文件写文本文件”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)引入相关的类importjava.io.IOException;importjava.io.InputStream;importjava.io.FileInputStream;构造一个文件输入流对象InputStreamfis=newFileInputStream(“c:
test.txt”);利用文件输入流类的方法读取文本文件的数据fis.available();/可读取的字节数fis.read();/读取文件的数据关闭文件输入流对象fis.close();用用FileInputStream读文本文件读文本文件”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)用用FileInputStream读文本文件读文本文件publicstaticvoidmain(Stringargs)throwsIOExceptionintsize;InputStreamfis=null;tryfis=newFileInputStream(c:
test.txt);size=fis.available();System.out.println(可读取的字节数可读取的字节数:
+size);chartext=newchar200;for(intcount=0;countsize;count+)textcount=(char)fis.read();System.out.print(textcount);catch(IOExceptione)e.printStackTrace();finallytryfis.close();catch(IOExceptione)e.printStackTrace();创建一个创建一个FileInputStream对象对象使用使用available()方法确定方法确定文件的大小文件的大小使用使用read()方法一次读取一个方法一次读取一个字符,然后将字符存储在字符数字符,然后将字符存储在字符数组中并显示字符组中并显示字符”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)引入相关的类importjava.io.IOException;importjava.io.OutputStream;importjava.io.FileOutputStream;构造一个文件输出流对象OutputStreamfos=newFileOutputStream(“c:
test.txt);利用文件输出流的方法写文本文件Stringstr=我爱Java!
好好学习!
天天向上!
;bytewords=str.getBytes();fos.write(words,0,words.length);关闭文件输出流fos.close();用用FileOutputStream写文本文件写文本文件”如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他们就是为windows写程序,而不是为Sun的设备写程序”ScottMcNealy(Sun首席执行官)用用FileOutputStream写文本文件写文本文件publicstaticvoidmain(Stringargs)throwsIOExceptionOutputStreamfos=null;tryStringstr=我爱我爱Java!
好好学习!
天天向上!
好好学习!
天天向上!
;bytewords=str.getBytes();fos=newFileOutputStream(c:
test.txt);fos.write(words,0,words.length);System.out.println(文件已更新文件已更新!
);catch(IOE