输入流和输出流:
输入流:
FileInputStream:
1.read()方法;一个字节一个字节的读
2.read(bytes)方法:一次读取一个数组,快捷常用。不知道数组需要读取几次的情况下,利用-1来判断数组的最后一位,以防止死循环或者报错;
FileInputStream fis = new FileInputStream("c://a.txt");
/* while(true){
//这种方法是 一个字节一个字节 的读,不经常用;
byte b = (byte)
fis.read();
if(b == -1){
break;
}
System.out.println(b);
}
*/
//一次读取一个数组,方便常用;
byte [] bytes = new byte[1000];
//读取返回的是一个参数
int len = fis.read(bytes);
//将读取的字节转成字符串,从0-读取到数组参数的个数(len)
System.out.println(new String(bytes,0,len));
/*
len = fis.read(bytes);
System.out.println(new String(bytes,0,len));
len = fis.read(bytes);
System.out.println(new String(bytes,0,len));
//当数组内容读取完毕后,返回-1;可以用这个方法来判断:
len = fis.read(bytes);
System.out.println(len);
*/
fis.close();
}
输出流:
FileOutputStream:
一切皆字节:
计算机中任何数据(文本,图片,视频,音乐)都是以二进制存储;
在数据传输中,也是以二进制的形式存储的
后续学习任何流,传输时底层都是以二进制
public static void main(String[] args) throws IOException {
//加了true之后,会在创建的文件中追加内容;不加true,则每次都会删除重写
FileOutputStream fos = new FileOutputStream("c://a.txt");
//byte [] bytes = {65,66,67,68,69};
byte [] bytes = "ABCDEF".getBytes();
//写一个具有开始下标及长度的字节
fos.write(bytes,1,2);
//1.写一个指定字节
//fos.write(65);
//写一个字节
//fos.write(bytes);
fos.close();
System.out.println("已经写出");
}
IO流常用方法演示:
//从指定文件夹移动文件到另一个指定文件夹;不建议移动电脑内部文件夹,容易出错
File file = new File("E://QQ文件//QQ图片.jpg");
File newFile = new File("D://1");
file.renameTo(newFile);
//创建文件
boolean flag = file.createNewFile();
System.out.println(flag?"创建成功":"创建失败");*//**//*
//创建文件夹,并在文件夹内创建文件
//file.mkdir();
File a = new File(file,"a.txt");
a.createNewFile();
File b = new File("C://1.txt","b.txt");
b.createNewFile();
//删除文件
a.delete();
b.delete();*/
}
.ListFile()方法:
1.根据具体条件,对文件夹进行遍历。遍历并打印出文件夹中的内容或地址;
2.过滤器(FileFilter):通过实现FileFilter 接口,在接口方法内部写入条件;
读取文件夹中符合条件的内容;