File##
java 中的file 类提供以下能力:
- 检测文件是否存在
- 读取文件长度
- 重命名或移动文件
- 删除文件
- 检测某个路径是文件还是目录
- 读取目录中的文件列表
重命名或移动文件
通过调用File类中的renameTo()方法可以重命名(或者移动)文件,代码如下:
File file = new File("c:\data\input-file.txt");
boolean success = file.renameTo(new File("c:\data\new-file.txt"));
当你获得一个File对象之后,可以检测相应的文件是否存在。当文件不存在的时候,构造函数并不会执行失败。
删除文件
通过调用delete()方法可以删除文件,代码如下:
File file = new File("c:\data\input-file.txt");
boolean success = file.delete();
delete()方法与rename()方法一样,返回布尔值表明是否成功删除文件,同样也会有相同的操作失败原因。
这里我只写了我不常用的 详情:http://ifeve.com/java-io-file/
FilterInputStream##
package filter;
public class filter {
public static void main(String[] args) {
// FilterInputStream filterInputStream=new FilterInputStream(new FileInputStream(""));
// 这一句报错的原因是 FilterInputStream 的构造方法是 protected 修饰的
}
}
BufferInputStream##
package buffer;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class Example {
public static void main(String[] args) throws FileNotFoundException {
BufferedInputStream bip = new BufferedInputStream(new FileInputStream("randomfile"), 8 * 1024);
// 可以自己设置 buffer缓冲区的大小
// bip.read() 函数其实不是一次一次去原文件去读的,其实是在缓冲区的 buf[] 数组去读的,
// 当读地点标志pos大于了 缓冲器已经读取的数组的标记 它会调用fill 函数 又去填充buf[] 数组
}
}
序列化io##
package object;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class Example {
public static void main(String[] args) throws Exception {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.out"));
oos.writeObject(new String("testObject"));
oos.writeInt(2);
oos.writeLong(23l);
oos.close();
}
}
oos.close(); 一定要调用close方法 将缓冲区的数据刷新进入 硬盘,不然会得到莫名的Exception
package object;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class Example2 {
public static void main(String[] args) throws Exception {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.out"));
System.out.println((String) ois.readObject());
System.out.println(ois.readInt());
System.out.println(ois.readLong());
}
}
testObject
2
23