一:File
1. 概念:用于创建文件和目录的对象
2. File f = new File("路径"); //创建了对象
3. File(String pathname):把一个路径名称封装成File对象
File(String parent, String child):把一个父路径和一个子路径封装成一个File对象
File(File parent, String child):把一个父路径File对象和一个子路径封装成一个File对象
4. 父路径没创造的话没法创建子路径文件
File file =new File("D://a.txt");
System.out.println(file.createNewFile());
//如果文件不存在,则创建文件,位置就是封装好的对象的地方
//床创建目录的,可单创建,也可多创建
File file=new File("D://test");
System.out.println(file.mkdir());
File file=new File("D://aa//bb//a.txt");
System.out.println(file.mkdirs());
5.删除文件:
//删除D://a.txt
File file = new File("D://a.txt");
System.out.println(file.delete());
删除D://test//a.txt
File file = new File("D://test//a.txt");
System.out.println(file.delete());
//删除D://test,删除文件夹的时候只能删除空的文件夹
File file = new File("D://test");
System.out.println(file.delete());
6.判断功能:
public boolean isDirectory():是否是目录
public boolean isFile():是否是文件
public boolean exists():是否存在
public boolean canRead():是否可读
public boolean canWrite():是否可写
public boolean isHidden():是否隐藏
7.获取功能:
public boolean isDirectory():是否是目录
public boolean isFile():是否是文件
public boolean exists():是否存在
public boolean canRead():是否可读
public boolean canWrite():是否可写
public boolean isHidden():是否隐藏
public String getAbsolutePath():获取绝对路径
public String getPath():获取相对路径
public String getName():获取名称
public String getPath():获取相对路径
public String getName():获取名称
二:字节流与字节高效流
输入与输出都是根据程序的角度来看的
字节流中的从数据源到目的地复制的四种方式:
public class IoTest {
public static void main(String[] args) throws IOException {
long startTime = System.currentTimeMillis();
// method1(); //15570
// method2(); //27
// method3(); //199
method4(); //16
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
}
private static void method4() throws IOException {
//D.高效字节流一次读取一个数组
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("H://d.mp4"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("H://3.mp4"));
int by;
byte[] bys=new byte[1024];
while ((by=bis.read(bys))!=-1) {
bos.write(bys, 0, by);
}
bis.close();
bos.close();
}
private static void method3() throws IOException {
//C.高效字节流一次读取一个字节
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("H://d.mp4"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("H://3.mp4"));
int by;
while ((by = bis.read()) != -1) {
bos.write(by);
}
bis.close();
bos.close();
}
private static void method2() throws IOException {
//B.基本字节流一次读取一个字节数组
FileInputStream fis = new FileInputStream("H://d.mp4");
FileOutputStream fos = new FileOutputStream("H://2.mp4");
byte[] bys = new byte[1024];
int by;
while ((by = fis.read(bys)) != -1) {
fos.write(bys, 0, by);
}
fos.close();
fis.close();
}
private static void method1() throws IOException {
// A:基本字节流一次读写一个字
FileInputStream fis = new FileInputStream("H://d.mp4");
FileOutputStream fos = new FileOutputStream("H://1.mp4");
int by;
while ((by = fis.read()) != -1) {
fos.write(by);
}
fos.close();
fis.close();
}
}