File类
File 类代表与平台无关的文件和目录(文件夹)。
在路径的杠的问题:
* /:只写一个即可
* \:需要写2个
* 相关方法:
* 访问文件名
* getName():得到文件名
* getPath():得到相对路径
* getAbsolutePath():得到绝对路径.返回值为String
* getAbsoluteFile():........返回值File
* getParent():得到父级目录
* renameTo(File dest) :重命名文件
* 文件检测
* exists():检测文件是否存在
* canRead()
* canWrite()
* canExecute()
* isFile()
* isDirectory()
获取文件信息
length():获取文件长度(以byte为单位)
lastModified():获取最后一次修改时间,返回值为long类型
* 文件操作相关
* createNewFile():创建文件
* delete():删除文件或目录
* 目录相关操作
* mkdir():创建目录
* list():返回目录中的名字组成的String数组
* listFiles() :返回目录中的File组成数组
2.IO流
就是输出流和输出流
3.字节流(以字节(byte)为单位):
1.InputStream:
是所有字节输入流的抽象基类
read():一个字节的读取
read(byte[] b):一次读取byte[]的长度那么多,返回真实读取的长度
read(byte[] b, int off, int len) :读取内容放在数组的部分中
当返回值为-1,代表着到达文件的末尾(流的末尾)
子类:
FileInputStream:文件字节输入流
2.OutputStream:
是所有字节输出流的抽象基类
write(int b) :一次写一个
write(byte[] b) :一次写一个数组
write(byte[] b, int off, int len) :一次写数组那么多,off:起始位置,len:输出的真实长度
子类:
FileOutputStream:文件字节输出流
注意:流需要关闭。调用close()方法关闭.
4.使用字节流实现对任意文件的复制案例
//创建输入字节流
InputStream in = new FileInputStream("D:/image/tutu.png");
//创建输出字节流
OutputStream out = new FileOutputStream("D:/image/tutu2.png");
//一边读取,一边写入
byte[] buffer = new byte[1024*2];
int len = 0;
while((len = in.read(buffer))!=-1){
out.write(buffer,0,len); //确保复制后的大小一致
}
//关闭字节输出流
out.close();
//关闭字节输入流
in.close();