《实验十三 io课件》由会员分享,可在线阅读,更多相关《实验十三 io课件(8页珍藏版)》请在金锄头文库上搜索。
1、1、 创建类对象,创建文件 FileTest.java2、创建目录f.mkdirs();3、自主创建添加绝对路径,可否成功编译报错,如何修改4 不同平台下,用分隔符 separate 在 E 盘根目录下创建5、删除文件/退出时删除文件6、创建临时文件7、创建临时文件并退出2 文件名的过滤器 FilenameFilter 是一个接口List 方法的参数是 FilenameFilter,调用实现 accept 方法,返回 true 或者 false File fDir=new File(File.separator); String strFile=“JavaLesson“+File.separa
2、tor+“Lesson7“; File f=new File(fDir,strFile); String names=f.list(new FilenameFilter() public boolean accept(File dir,String name) return name.indexOf(“.java“)!=-1; ); for(int i=0;inames.length;i+) System.out.println(namesi); 流式 IO:像自来水一样,有输入输出:API 3 out 的类型就是 printStreamIn 的类型是 inputstream,它都是 syst
3、em 的对象 FileInputStream 见 ppt StreamTest.java :输入输出(将以上注释掉,并添加) 对文件的读取及写入输入 从文件中读取,并打印到屏幕上BufferedOutputStream 过滤流 api 需要使用 outputStream 作为参数编译运行,并没有相应内容。为什么?缺一个或者 flush 或者 close;flush 继续写,close 完成输入。BufferedInputStream 过滤流过滤流 DataInputStream/DataOutputStream 需要用已经存在的输出流去构造将这些字符写入文件中了,打开是乱码,可以用 ultra
4、edit 打开 data 输入流需要用已经存在的输入流去构造4 PipedStreamTest 用于线程之间的通信 PipedInputStream 由 InputStream 派生,可以在构造管道输入流时,同时构造管道输出流, 也可以先构造输入流,然后再用 connect 方法构造输出流5字符流类 InputStreamReader 和 OutputStreamWriter 这两个类是字符流和字节流转换的类,前者将字 节流转换成字符流,后者将字符流编码成字节流在新建 StreamTest2.java,main 方法中输入注释以上代码,main 方法中添加以下即可从键盘读取数据输入6 输入输出
5、流与字符集 CharsetTest.javaimport java.util.*; import java.nio.charset.*; class CharsetTest public static void main(String args) throws Exception Map m=Charset.availableCharsets(); Set names=m.keySet();/set 中没有响应的 get 方法,所以使用迭代器迭代 Iterator it=names.iterator(); while(it.hasNext() System.out.println(it.nex
6、t(); 7 文件的随机访问 import java.io.*;class RandomFileTest public static void main(String args) throws Exception /2- Student s1=new Student(1,“zhangsan“,98.5); Student s2=new Student(2,“lisi“,96.5); Student s3=new Student(3,“wangwu“,78.5); RandomAccessFile raf=new RandomAccessFile(“student.txt“,“rw“); s1.
7、writeStudent(raf); s2.writeStudent(raf); s3.writeStudent(raf); /4- Student s=new Student(); raf.seek(0); for(long i=0;iraf.length();i=raf.getFilePointer() s.readStudent(raf); System.out.println(s.num+“:“+s.name+“:“+s.score); raf.close(); /1- class Student int num; String name; double score; /3- publ
8、ic Student() public Student(int num,String name,double score) this.num=num; this.name=name; this.score=score; public void writeStudent(RandomAccessFile raf) throws IOException raf.writeInt(num); raf.writeUTF(name); raf.writeDouble(score); public void readStudent(RandomAccessFile raf) throws IOException num=raf.readInt(); name=raf.readUTF(); score=raf.readDouble();