黑马程序员----IO流以及文件的操作

第一部分:BufferWriter,BufferReaser基本操作

在学习过FileReader与fileWhiter后 发现此方法对字节流的操作效率低 原因是不断的在读写操作

现在引进缓冲区,在字节达到一定的数量后一次写入 ,减小了硬盘的写入次数以下是代码的实现过程

 

import java.io.*;

class BufferWriterDemo                   //缓冲区的写操作

{

       public static void main(String[] args) throws IOException

         {

             //创建一个字符流写入对象

                 FileWriter fw = new FileWriter("buf.txt");

            //为提高效率 创建缓存区

            //将流对象作为参数传给缓冲区构造函数即可

                BufferedWriter bufw = new BufferedWriter(fw);

            for(int x =1;x<5;x++)

               {

                      bufw.write("abcd"+x);

                      bufw.newLine();

                      bufw.flush();

               }

           //要用到缓冲区必须要刷新

              bufw.flush();

           //关闭缓冲区就是关闭流对象

              bufw.close();

         }

}

  ------------------------------------------------------------------------------------------

import java.io.*;

class BufferReaderDemo  //缓冲区的读操作

{

          public static void main(String[] args) throws IOException

             {

                  //创建一个字符流读入对象

                        FileReader fr = new FileReader("buf.txt");

                  //为提高效率 创建缓存区

                  //将流对象作为参数传给缓冲区构造函数即可

                       BufferedReader bufr = new BufferedReader(fr);

                       String line = null;

                 while((line=bufr.readLine())!=null)

                      {

                               System.out.println(line);

                      }

                //关闭缓冲区

                      bufr.close();

           }

}

 

 

 

第二部分:字节流的操作

字节流操作与字符流类似

代码实现

 

import java.io.*;

class Filestream

{

        public static void main(String[] args) throws IOException

          {

                //writerFile();

                     readFile();

          }

 

       //读取函数

      public static void readFile() throws IOException

       {

                  FileInputStream fos = new FileInputStream("fos.txt");

             byte buf[] = new byte[1024];

             int len = 0;

             while((len=fos.read(buf))!=-1)

                 {

                            System.out.println(new String(buf,0,len));

                 }

                 fos.close();

         }

 

       //写入函数

       public static void writerFile()throws IOException

         {

                   FileOutputStream fos = new FileOutputStream("fos.txt");

                   fos.write("abcde".getBytes());

              //关闭缓冲区

                   fos.close();

           }

}

 

 

      第三部分:文件的操作

概述

import java.io.*;

class fileDemo

{

         public static void main()

           {

           method();

           }

        //创建file对象

       public static void method()

         {

               //将file.txt转换成file对象,可以将已有的文件和未出现的

               //文件封装成对象

                    File f1 = new File("file.txt");

              //后者为前者子目录或者内容

                   File f2 = new File("c:\\avc","file.txt");

              //创建一个file对象 将fff.txt放在d下面

                   File d = new File("c.txt");

                   File f3 = new File(d,"fff.txt");

                   sop(f1);

                   sop(f2);

                   sop(f3);

            }

         public static void sop(Object obj)

           {

                   System.out.println(obj);

           }

}

 

 

文件的创建 删除 判断 获取

1创建:

boolean creatNewFile( ) 在指定位置上创建,如果以及存在则不创建,返回false 和输出流不一样 如果以及存在则覆盖

boolean mkdir( )   创建文件夹

boolean mkdirs( )  创建多级文件夹

2删除boolean delete( )

 void deleteOnExit( ) 退出的时候删除

3 判断(必须先创建     creatNewFile   mkdir             )

 isDirectory(  )判断是否是目录

 isFile( )判断是否是文件

isAbsolute()判断绝对路径相对路径

4获取

getName()获取名字

getPath()路径

getParent() 返回绝对路径下的父目录 如果返回的是相对路径则返回空 如果相对路径有上一层目录 则返回上一层目录

getAbsolutePath() 绝对路径

lastModified()  最后一次修改的时间

lenth() 长度

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值