File:代表文本和文件夹
File类只能对文件本身进行操作,不能读写文件里面存储的数据。
创建File类的对象
路径写法
绝对路径:从盘符开始
File file = new File(“D:\\ceshi\\a.txt”);
相对路径:不带盘符,默认直接到当前工程下的目录寻找文件
File file = new File(“模块名\\a.txt”);
File常用方法
File类创建文件的功能
File类删除文件的功能
注意:delete方法默认只能删除文件和空文件夹,删除后的文件不会进入回收站。
需求: 从D:盘中,搜索“你好.txt” 这个文件,找到后直接输出其位置。 分析: 先找出D:盘下的所有一级文件对象 遍历全部一级文件对象,判断是否是文件 如果是文件,判断是否是自己想要的 如果是文件夹,需要继续进入到该文件夹,重复上述过程
public class Demo5 {
public static void main(String[] args) {
search(new File("E:\\测试"),"nihao.txt");
}
public static void search(File file,String name){
File[] files = file.listFiles();
if(files != null && files.length > 0 ){
for (File file1 : files) {
if(file1.isDirectory()){
search(file1 , name);
}else {
String name2 = file1.getName();
if(name2.equals(name)){
System.out.println(file1.getAbsolutePath());
return;
}
}
}
}
}
}
File类提供的遍历文件夹的功能
字符集
常见字符集有哪些?各自存储数据的特点是什么?
ASCII字符集: 只有英文、数字、符号等,占1个字节。
GBK字符集: 汉字占2个字节,英文、数字占1个字节。
UTF-8字符集:汉字占3个字节,英文、数字占1个字节。
字符集的编码解码操作
Java代码完成对字符的编码
Java代码完成对字符的解码
IO流
IO四大流
IO流的作用?
读写文件
IO流体系
FileInputStream(文件字节输入流)
注意: 使用FileInputStream每次读取一个字节,读取性能差,并且读取汉字输出会乱码
ublic class Demo2 {
public static void main(String[] args) throws IOException {
//1. 创建文件字节输入流(c_demo2.txt)
//一次读取多个字节
InputStream is = new FileInputStream("E:/Code191Day/day08/c_demo2.txt");
//2. 读取文件中的内容
byte[] bytes = new byte[3];
int len ;
while ((len = is.read(bytes)) != -1){
System.out.println(new String(bytes,0,len));
}
//3. 如果流操作完毕, 应该主动关闭流
is.close();
}
}
FileOutputStream(文件字节输出流)
字节输出流如何实现写出去的数据可以换行?
写"\r\n"的字节数组表示形式
public class Demo5 {
public static void main(String[] args) throws IOException {
InputStream is = new FileInputStream("E:\\QQmusic\\MV\\BEYOND-海阔天空(标清).mp4");
OutputStream os = new FileOutputStream("E:\\QQmusic\\haha\\BEYOND-海阔天空(标清).mp4");
byte[] bytes = new byte[1024 * 1024];
int len;
while ((len = (is.read(bytes))) != -1){
os.write(bytes,0,len);
}
is.close();
os.close();
}
}