javaoop的知识点

来源:互联网 发布:单片机毕业设计题目 编辑:程序博客网 时间:2024/04/28 13:22
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
原创粉丝点击