A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邱峁 中级黑马   /  2012-12-11 16:48  /  1558 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、定义:给定一种涉及导航文件系统、读取或写入文件的场景,常用的类有:BufferReader、BufferWrter、File、FileReader、FileWriter和Printer
二、I/O的分类:文件I/O、控制台I/O、线程I/O、高性能I/O、面向字节I/O、面向字符I/O、I/O过滤和包装、串行化等
三、File类定义:是文件名和目录路径的抽象表示,File类不用于实际地读入或写数据,它用于较高级别的工作,建立新的空文件、查找文件,删除文件,建立目录,以及使用路径
1、File类型的对象用于表示于计算机的物理磁盘上的实际文件(而不是文件中的数据)或目录。
File file=new File("D:\\test\\fileWrite.txt");//文件是否创建       
                /**
                 * 测试怎样创建文件
                 *
                 */       
                boolean newFileflag=file.exists();
                boolean creatFileFlag=file.createNewFile();
2、举例说明一些常用方法
三、FileWrter和FileReader:用于读取字符文件
1、特点:它以read()方法的工作方式相当低级,允许读单个字符、整个字符流,或者固定数量的字符。要改进速度可以通过较高级的(BufferedReader)
/**
                 * 读进文件数据
                 */
                FileReader fr=new FileReader("D:\\test\\111.txt");//仅声明对象
                char [] in=new char[50];
                int size=fr.read(in);
                System.out.println("size="+size);
                fr.close();
                for(char c:in){
                        System.out.println(c);
                }
2、FileWriter和FileReader一起使用
                /**
                 * 读进数据,放入char内
                 */
                FileReader fr=new FileReader("D:\\test\\111.txt");
                char [] in=new char[50];
                int size=fr.read(in);
                fr.close();
                System.out.println("size="+size);

               
                /**
                 * 重新创建文件,并将数据写入新的文件中
                 */
                File file=new File("D:\\test\\newFile.txt");
                FileWriter fw=new FileWriter(file,true);
                fw.write(in);
               
                fw.flush();
                fw.close();
3、BufferedReader
A、这个类用于使低级Reader类(如FileReader)更高效、更容易使用。
B、与FileReader相比,BufferedReadeer一次能从文件读取相对更多的数据,并将该数据保持在缓冲区中,当需要下一个字符或一行数据时,将从缓冲区中检索它,从而把执行时间密集型文件读取操作的次数降至最少。另外,BufferReader提供了诸如readLine()之类的更方便的方法,以从文件中获取下一行字符
4、认识flush和close
A、flush():当你写出数据到流中时,将会发生某些数量的缓冲,我们不能确切知道何时实际发送数据的最后部分,在关闭流之前,调用flush()方法,可以确保所有数据从文件中取出
B、close():不论是读还是写,都应调用close()方法,因为当执行I/O时,我们正在使用有限的操作系统资源,因此必须调用close()来释放资源

四、组合I/O
1、Java整个I/O系统都是围绕“组合使用多个类”的理念设计的。有时称为包装,有时称为链接
        Java.io包中包含大约50个类、10个接口和15个异常
2、常用的I/O
Java.io类        扩展自        关键的构造函数参数        关键方法




File       



Object        new File(File、String)
String
String String        createNewFile()
delete()
extits()
isDirectory()
isFile()
list()
mkdir()
renameTo()

FileWrter       
Writer        File
String        close()
flush()
write()

BufferedWriter       
Writer        Writer        close()
flush()
newLine()
write()

PrintWriter       
Writer        File(从java5起)
String(从java5起)
OutputStream
Writer
        close()
flush()
format()、printf()
print()、println()
write()
FileReader        Reader        File
String        read()
BufferedReader        Reader        Reader        read()
readLine()
3、怎样运用I/O
A、最终目标是挂钩到一个File对象,因此我们使用的类,其中一个类的构造函数,用于获取File类型的对象
B、找到一个方法,它应是最强大、最容易完成任务。如BufferedWriter具有一个newLine()方法,但这个方法不如Printer类的println()方法好运,因为这个方法不用人工分行
C、我们查看PrintWriter的构造函数时,我们看到具有一个File类型的对象,则可以构建一个PrintWrter对象,因此要创建一个PrintWrter对象所需要的一切工作:

File file=new File("D:\\test\\newFile0.txt");
                PrintWriter pw=new PrintWriter(file);

五、处理File和Director
1、File类用于创建文件和目录,File的方法可以用于删除、重命名等
File file=new File(“foo”);
A、如果“foo”不存在,则不会创建实际的文件
B、如果“foo”存在,则新的File对象会引用现有的文件
2、创建文件的两种方式
A、createNewFile()
B、创建一个Reader或Wrter,或者一个Stream,确切的讲,创建一个FileReader、一个FileReader、一个PrintWriter、一个FileInputStream或者一个FileOutputStream,每当创建这些类之一的实例时,就会自动创建一个文件
3、创建目录:类似于创建文件
用mkdir()方法创建一个实际的目录

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马