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)
____________________________________