javaIO学习
IO流概述
File文件类 : 既可以表示一个文件,也可以表示一个文件目录
文件在java语言中也是一种对象
File类有三种构造器
1.new File(String filePath); //filePath:文件路径 注意:文件路径分为相对路径和绝对路径 在IDEA中相对路径是在main方法中是project下 在@Test方法中是 Module下 而在eclipse中都是在project下
例如 File f1 = new File1("D/hello");
2.new File(String parentPath,String childPath): //parentPath:要new的文件的上一层目录 childPath:要new的文件名字
例如 File f2 = new File1("D/hello","你好.txt");
3.new File(File parentFile,String childPath);//parentPath:要new的文件的上一层目录(不过这里以File出现了) childPath:要new的文件名字
例如 File f3 = new File1(f1,"你好.txt");
File类的常用方法
File类的获取功能
public String getAbsolutePath():获取绝对路径
public String getPath():获取路径
public String getName():获取名称
public String getParent():获取上层文件目录路径。若无,返回null
public long length():获取文件长度(即:字节数)。不能获取目录的长度。
public long lastModified():获取最后一次的修改时间,毫秒值
public Stringl] list():获取指定目录下的所有文件或者文件目录的名称数组
如下的方法适用文件目录
public File[] listFiles():获取指定目录下的所有文件或者文件目录的File数组File类的重命名功能
File类的重命名功能
public boolean renameTo(File dest):把文件重命名为指定的文件路径
比如: file1.renameTo(fiLe2)为例:
要想保证返回true,需要fiLe1在硬盘中是存在的,且fiLe2不能在硬盘中存在。
File类的判断功能
public boolean isDirectory():判断是否是文件目录
public boolean isFile():判断是否是文件
public boolean exists():判断是否存在
public boolean canRead():判断是否可读
public boolean canWrite():判断是否可写
public boolean isHidden() :判断是否隐藏
File类的创建功能
public boolean createNewFile():创建文件。若文件存在,则不创建,返回false
public boolean mkdir():创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。
public boolean mkdirs():创建文件目录。如果上层文件目录不存在,一并创建
注意事项:如果你创建文件或者文件目录没有写盘符路径,那么,默认在项目路径下。
File类的删除功能
public boolean delete():删除文件或者文件夹删除注意事项:
Java中的删除不走回收站。
要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录
IO流
这里的输入输入都是相对于内存来说
字符流的基类
输出流 | 输入流 |
---|---|
Reader | Writer |
字节流的基类
输出流 | 输入流 |
---|---|
OutputStream | InputStream |
输入、输出的标准化过程
1 输入过程
① 创建File类的对象,指明读取的数据的来源。(要求此文件一定要存在)
② 创建相应的输入流,将File类的对象作为参数,传入流的构造器中
③ 具体的读入过程:
创建相应的byte[] 或 char[]。
④ 关闭流资源
说明:程序中出现的异常需要使用try-catch-finally处理。
2 输出过程
① 创建File类的对象,指明写出的数据的位置。(不要求此文件一定要存在)
② 创建相应的输出流,将File类的对象作为参数,传入流的构造器中
③ 具体的写出过程:
write(char[]/byte[] buffer,0,len)
④ 关闭流资源
说明:程序中出现的异常需要使用try-catch-finally处理。
常运用的模板
FileInputStream fis = new FileInputStream(new File("要传输的文件")) ;
FileOutputStream fos = new FileOutputStream(new File("传输目文件")) ;
int len;//定义读取长度
byte[] b = new byte[1024];//定义搬运数组的
for((len = fis.read(b))!=-1 ){ //read(b):将读取b大小的文件并存入b数组中 返回读取数据的大小 然后用len记录大小,len不等于-1时,就代表数据没有读取完,将一直循环到len为-1
fos.writer(b,0,len)// 读取b从0开始的指定字节数组写入len字节到文件输出流
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤