File不仅可以描述文件,也可以描述文件夹
File
public static void main(String[] args){
File f2=new File("d:\\abc");
boolean b=f2.exists();
}
时间单位毫秒,自1970.1.1起,long类型
String[] list()返回文件夹
public static void main(String[] args){
File f2=new File("d:\\abc");
String[] sa=f2.list();
for(int i=0;i<sa.length;i++){
File child=new File(f2.sa[i]);
if(child.isFile()){
}
else if(child.isDirectory()){
}
}
File[] children=f.listFiles();
RandomAccessFile raf=new RandomAccessFile("a");
raf.writeInt(5);
raf.writeDouble(3.14);
int r=raf.readInt();
r=Integer.reverseByte(r);
raf.seek(100);
}
InputStream,OutputStream读一个一个字节
抽象类
流操作是顺序的单向的read有三个参数
()
(byte[])
(byte[],int offset,int length)Reader,Writer文本数据,读一个一个char
FileInputStream
ByteArrayInputStream
ByteArrayOutputStream返回值byte数组
FilterInputStream一切处理流的父类
DataInputStream
ObjectInputStream
Serializable
节点流,和外部数据打交道
FileOutputStream fos=new FileOutputStream("a.dat");
int i=8976;
fos.write(i);
fos.write(i>>8);
fos.write(i>>16);
fos.write(i>>24);
fos.close();
处理流,和流打交道,对其他的流进行额外的加工转换(看构造函数就能区分处理流和节点流了)
FileOutputStream fos=new FileOutputStream("a.dat");
int i=8976;
fos.write(i);
fos.write(i>>8);
fos.write(i>>16);
fos.write(i>>24);
fos.close();
DataInputStream
流链接 stream chaining
FileInputStream fis=new FileInputStream("a.dat");
BufferedInputStream bis=new BufferedInputStream(fis);
DataInputStream dis=new DataInputStream(bis);
int i=dis.readInt();
double d=dis.readDouble();
FileOutputStream fos=new FileOutputStream("a.dat");
DataOutputStream dos=new DataOutputStream(fos);
fos.writeInt(5);
dos.close();
fos.close();
ObjectInputStream
public class Student implement Cloneable,java.io.Serializable{}
//Serializable序列化
Student s1=new Student();
s1.age=16;
s1.id="001";
//这里是深复制!对象聚合的数据也都复制了!
FileOutputStream fos=new FileOutputStream("a.dat");
ObjectOutputstream oos=new ObjectOutputStream(fos);
oos.writeObject(s1);
oos.close();
fos.close();
Serializable序列化,把对象变成序列化(变成一个字节一个字节)传输,类只有实现这个接口的才可以被序列化,同时这个类所聚合的其他的类也都要实现序列化接口!否则就报错!