黑马程序员_Java基础2

来源:互联网 发布:开源cms系统免费 编辑:程序博客网 时间:2024/06/04 18:01

------- android培训java培训、期待与您交流! ----------

IO流 - 字符流 - FileWriter类
此类位于java.io包下,用于文件流的便捷输出。
构造函数:
FileWriter(File file | boolean append) 按指定文件对象构造一个文件写入流对象,可选是追加写入
FileWriter(String filename | boolean append)按指定文件名构造一个文件写入流对象,可选是追加写入
常用方法
write(String str) 将字符串写入文件输出流
flush() 将缓存写入文件

IO流 - 字符流 -  FileReader类
此类位于java.io包下,用于文件流的便捷输入。 
构造函数:
FileReader(File file) 根据File对象,构建一个文件输入流对象
FileReader(String filename) 根据文件名,构建一个文件输入流对象 
常用方法:
read() 读取单个字符(继承InputStream的方法)
read(char[] cbuf,int offset, int length) 将字符读入指定字符数组的某处,开始到结尾( InputStream的方法)
read(char[]) 将字符读入缓冲数组(Reader的方法)
read(char[], cbuf,int offset, int length) 将字符读入指定缓冲数组的指定开始到结尾(Reader的方法)
提高读取数据效率的方法:使用字符数组作为读取流缓冲区
char[] buf = new char[1024];
int len = 0;
while((len=fr.read(buf)) != -1) { 
    System.out.println(new String(buf,0,len)); //以char数组中0到1en的字符生成一个新的字符串
}

IO流 - 异常及处理
常见异常:IOException、FileNotFoundException
在对异常进行捕获之后,要进行finally处理
在finally中,关闭各种流和清理缓存资源之前,要先判断各种流是否为空:
finally 
{
    try 
    {
        if(fr != null) fr.close();
    }
    catch (IOException e)
    {
        throw new RuntimeException("输入流关闭失败!");
    }
}

IO流 - 字符流 -  字符缓冲流

BufferedReader 缓冲输入流
常用方法:
read(Reader in)
readLine() 读入一行字符,并封装成一个字符串返回,此方法读到末尾没有数据时,会返回null
因此在循环读取时可以这样判断:
String line = null;
while((line=br.readLine()) != null) {
    System.out.println(line);
}
其底层是由FileReader实现,运用了缓冲技术。
缓冲技术,其实就是内部构建了一个缓冲区,将单个字符缓冲到一定容量后,再构造字符串返回。
扩展:掌握了FileReader类以及字符缓冲技术,完全可以自己创建一个BufferedReader。
BufferedWriter 缓冲输出流
常用方法:
write(String str)
newLine() 跨平台的换行方法
flush() 缓冲数据刷新到写入流
其底层也是使用了缓冲技术,将要写入的字符先缓冲到字符数组中,到一定容量后,再一次性写入文件。

------- android培训java培训、期待与您交流! ----------

详情请查看:http://edu.csdn.net/heima