初学Java,记录总结老师授课的IO基础笔记
IO流:(Input OutPut) 输入输出流: 输入 :将文件读到内存中 输出:将文件输出到其他地方。
IO技术的作用 : 主要就是解决设备和设备之间的数据传输问题。 比如:硬盘到---》内存 ,内存数据---》硬盘中 把键盘中的数据写入到内存。
IO的应用场景:
比如: 打卡机到出信息表
比如: 注册的时候图片的上传。
比如 : 下载功能
解析XML
数据保存到本地,数据一个永久保存。数据保存到磁盘上是以文件的形式存在的。
学习文件的操作
java 中如何操作文件:
java 中是通过File 文件类来操作文件和文件夹。
学习文件类的构造方法:
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例
File file = new File(D:\\java学习/a.txt);
System.out.println("是否存在文件?" + file.exists());
File(File parent, String child) 根据parent 抽象路径名和child路径名字符串创建一个新的File实例
File parent = new File(D:\\);
File file = new File(parent,"java学习/a.text");
System.out.println("是否存在文件?" + file.exists());
File(String parent, String child) 根据parent 路径名字字符串和child 路径名字字符串创建创建一个新 File 实例
File file = new File("D:" + File.separator,"java学习/a.txt")
System.out.println("是否存在文件?" + file.exists());
//获取系统默认的分隔符
//System.out.println(File.separator);
-----------------------------------------------------------------------------------------------------------------
路径问题:
绝对路径:文件在硬盘的完整路径。绝对路径一般都是以盘符开头 D:\\java学习 绝对路径
相对路径:相对路径就是资源文件相对当前程序所在的路径
File中的常用方法:
创建CreateNewFile() 在指定位置创建一个空文件,成功就返回true,如果已存在就不创建然后返回falsea
//在指定的位置创建一个空的文件
/*File file = new File("D:\\aa");
System.out.println("通过指定的路径创建一个空的文件"+file.createNewFile());
mkdir() 在指定位置创建目录,这只会创建最后一级目录,如果上级目录不存在就抛异常。
1.不能够有同名的文件或文件夹 2.只能创建单级文件夹
File dir = new File("D:\\cc"); //
System.out.println("创建文件夹成功吗"+dir.mkdir());
mkdirs() 在指定位置创建目录,这会创建路径中所有不存在的目录。
File dirs = new File("D:\\bb\\aa");
System.out.println("创建文件夹成功吗?"+dirs.mkdirs());
renameTo(File dest) 重命名文件或文件夹,也可以操作非空的文件夹,文件不同时相当于文件的剪切,剪切时候不能操作非空的文件夹。移动/重命名成功则返回true,失败则返回false。
File file = new File("D:\\java学习/a.txt");
System.out.println("是否找到该文件夹?"+file.exists());
File destFile = new File("D:\\aabb"); //指的是重命名的名字
System.out.println("重命名成功吗?"+file.renameTo(destFile));*/ // 重命名文件夹
// 重命名文件
File file = new File("D:\\aa");
System.out.println("重命名成功吗?"+file.renameTo(new File("D:\\aa.txt")));
/如果我是更改盘符 : renameTo 是做剪切的操作。
File file = new File("D:\\aa.txt");
System.out.println("重命名成功吗"+file.renameTo(new File("G:\\aa.txt")));
delete() 删除文件或一个空文件夹,如果是文件夹且不为空,则不能删除,成功返回true,失败返回false。
File file = new File("D:\\java学习/a.txt")
System.out.println("删掉了吗?" + file.delete());
deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录,保证程序异常时创建的临时文件也可以被删除
file.deleteOnExit();
System.out.println("哈哈");
------------------------------------------------------------------------------------------------------------------
public class Demo3{
public static void main(String[] args){
File file = new Flie ("D:\\a.txt");
System.out.println("存在吗?"+ file.exists());
File file2 = new Flie ("D:\\bb");
// File file3 = new Flie ("..\\..\\..\\bb");
//-----------------------------------------------------------------------------------
获取方法:
System.out.println("获取文件名称" +file.getName()); //获取文件名称,你写的是什么名就是什么名字。
System.out.println("获取路径" +file.getPath());
System.out.println("获取文件的绝对路径" +file.getAbsolutePath());
System.out.println("获取文件的大小" +file. getTotalSpace());
//以字节为单位1kb=1024b 1M = 1024KB 1G = 1024M;
获取某个文件夹的大小:
//思路:!! 获取文件夹中所有的文件包括子文件夹中的文件,将所有文件的大小累加!!
System.out.println("获取父目录" +file. getParent()); //除了文件以外的所有部分
//想要删除某个文件夹一周前的数据。
!!以毫秒为单位的
System.out.println("最后一次修改的时间" + file.lastModified());
//转成平常的时间
long time = file.lastModified();
Date date = new Date(time);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("最后一次修改的时间” +dateFormat.format(date));
//文件夹的操作
/* File[] files = File.listRoots(); //获取windows所有盘符
for(File file : files){
System.out.println("盘符"+ file);m
}*/
//获取指定文件夹下文件和子目录,子目录中的东西是获取不到的
/* File file = new File("D:\\java学习/a.txt");
String[] nameStrings = file.list();
for(String string : nameStrings){
Syetem.out.println(String);
}*/
File file = new File("D:\\java学习/a.txt");
File[] files = file.listFiles();
for(File file2 : files){
System.out.println("name:" + file2.getName());
//判断file2指的是文件还是文件夹
if(file2.isDirectory()){
从子目录中再次获取值
File[] nextFiles = file2.listFiles();
for(File file3: nextFiles){
System.out.println("subname" + file3.getName());
}
}
}
//查找指定的后缀名的文件
/* File file = new File("D:\\java学习/a.txt);
//定义一个过滤器
//FilenameFilter 一个接口
String[] strings = file.list(new MyFilter());
for(String string : string){
System.out.println(String);
}*/
/*判断方法:
exists() 文件或文件夹是否存在。
isFile() 是否是一个文件,如果不存在,则始终为false。
isDirectory() 是否是一个目录,如果不存在,则始终为false。
isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。
isAbsolute() 测试此抽象路径名是否为绝对路径名。
*/
if(file.exists()){
System.out.println("是文件吗?" + file.isFile());
System.out.println("是文件吗?" + file.isDirectory());
System.out.println("是隐藏文件吗?" + file.isHidden());
System.out.println("是隐藏文件吗?" + file2.isHidden());
System.out.println("是绝对路径吗?" + file3.isAbsolute());
}
}
}