javaoop--io操作

来源:互联网 发布:预付款融资模式优化 编辑:程序博客网 时间:2024/03/29 18:39

1.文件 是 相关记录或存放于相同位置的数据的集合

      

2. Java 提供的  FILE类 操作类

                           是一个 静态的类,

                        .separator----分割符  

        File f=new File("c:\\a1.txt");  \\ 才表示是 \ 因为有 一个是转译字符

      if(){                             或者 是 “c:”+File.separator+"s1.txt";

           删除

           }else{

            创建

}

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

f.mkdir 创建文件夹

            我要得到 e盘下面的 所有文件夹和文件 的名字  

                File f=new File("E:\\");

                String s[] =f.list();

                  for(String ss:s){syso(s)}    然后再打印

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

         在仔细分一下  得到每一个文件 

                  File []fs=f.listFiles();           

                  for(File m:fs){

              syso:   m.isDirectory()?"目录":”文件“

                              m.isFile()?文件:目录

            }

————————————————————————————————————

3. 杀毒软件 是一个一个扫

        // 输出一个目录下 所有的 文件和文件夹

         public File listFile(String path){

                 File f=new File(path);

       File [] fs=f.listFiles();

然后遍历 出来

 先加一个  if(fs!=null)

  for(File ff:fs){

if(ff.isFile()){是文件  ff.getName()}

// 如果是 文件夹 需要 使用 递归调用

if(ff.isDirectory()){listFile(ff.getPath())}

}



}

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

   3.文件里面的内容:

 是 一串连续不断的数据的集合

      3.1字节流和 字符流

      3.2输入流(外面的 东西拿过来)和 输出流 ----out是写入

3.5

字节流  input s 和                   out puts---抽象类

             读取                            写入

                    同一个类 是重载,需要 刷新 flush()

  方法:    readBytes()                     write(bys,0,len)

 实现类: FileInputS()                       FileoutputS()

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

out=new FileOutS(f) 

        out.write(1)或者 out.write(msg.getBytes());这样 会 覆盖了

out=new FileOutS(f,true) 就会 不是 覆盖, 是追加

                                                           out.flush()

                                                             out.close()

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

  3.6从文件把值 弄出来,但是你不知道 到底有 多少的 字节,

                   读文件 需要 循环


f 是一个 文件new File( “E:\\a.txt”);

ins=new FileInputS(f);

byte bys=new byte[1024];箩筐 是1024大,最多 一次读这么多

// 默认的 读出来 的 为-1  

   while(ins.read(bys)!=-1){

                                                                         去空格

         syso: new String(bys).trim()// 把 字符数组 转化为  可 看懂的字符串

                       读过来的没有 缓冲的 

                       bys=new byte[1024];      所以 读的 内容  需要 更新一次                                        


}

这样 的 会出现  bys 会出问题 , 第一次 丢了  1024 个进去

                                    最后一次 没有了  1024个,就没人 覆盖

            所以 读的 内容  需要 更新一次

————————————————————————————————————————bufferInS  是 ins 流---输入流 

------bufferOutS  

在原来的 基础上 加了一个缓冲 

    和 以上是一样的

     先有水渠 才能 刷水泥   

 new bufferInS(new FileIns(new File(fileName)));

_______________________________________________

_______________________________________________

4.0 对象流

            :整个对象 储存到 文件中 交 对象序列化

         1.  必须先 实现  serializable 接口

         2. ObjectOutputS  ,QQ 聊天 是 用的对象  好友列表 是 数据库

              实际 是:文件流 在 传输

                oout=new ObjoutS(new FileOUt(new File(filename)))

                 oout.writeObject(new stu("马云 ",20,"湖北省咸宁"));

                  oout.flush();            stu类必须 实现 ser接口

                   oout.close();                                                            


————————————————————————————

读出来时 ,需要强制的转化  对象

      Object oo =Oins.readObject();

       Stu ss=(stu)oo;                       

__________________

  判断 能不能被 实现 序列化

  对象只能 覆盖,不能追加

  存多个人,必须 把学生 丢给 ArrayList()里面

                         然后 把  ArrayList 序列化


____________________________________________

_______________________________________________

6. 字符流 的 搞法:

      write(char[])  -----[ writer w=new Filewriter('路径")]  .write("msg")

                                  msg可以 是字符串  如果是写入 write(65),是A

                                也可以 是 char [] d={a,a,a,a,a,a};

      read(char[])----------Filereader

字符数组 转化为  字符串 new String(char[] sss)

____________________________________

0 0