一起来了解Java的File类和IO流
作者:静静子? 发布时间:2022-04-12 09:23:15
1.IO流介绍
IO流可以用到的地方很多,就比如设计模式、下载、传输等等。学好IO流,为之后的进一步学习打下基础,那么,先来说说什么是流?
流是一个抽象的概念,当程序读取数据时,就会开启一个通往数据源的流,这个数据源可以是文件、内存或者是网络链接;当程序写入数据时,就会开启一个通往目的地的流。
java中把不同到的来源或者目的地的数据都统一抽象为数据流
本质:就是对数据的传输,数据的一个结合,有方向性
IO流体系结构
流的实现类:
2.Java中流的分
2.1按流向分:
输入流:程序可以从中读取数据的流
输出流:程序能向其中写入数据的流
输入流:从数据源读取数据流到程序(数据源:磁盘/U盘/网络/键盘)
输出流:从程序写入到目的地(目的地:磁盘/U盘/网络/显示器)
2.2按数据传输单位分:
字节流:以字节为单位传输数据的流
字符流:以字符为单位传输数据的流
2.3按功能分:
节点流:用于直接操作目标设备的流
过滤流:对一个已存在的流进行包装,以提供更强大和灵活的读写功能
3.File类介绍
IO流从文件中输入输出,至始至终都离不开文件,所以先来说说文件file类。
3.1file类的作用
File类主要作用是对文件和目录的抽象表示,该类主要是对目录和文件进行创建、修改、删除、过滤等造作
3.2file类构造函数
File(String pathname) //将路径字符串实例化File实例
File(String parent, String child) //从父路径名和子路径名来构建file实例
File(File parent, String child) //根据父路径File实例和子路径名来构建实例
//pathname
File img1 = new File("/Users/gongdezhe/Desktop/IO/img1.png");
//parent, child
File img2 = new File("/Users/gongdezhe/Desktop/IO", "img2.png");
//File parent, String child
File parent = new File("/Users/gongdezhe/Desktop/IO");
File sql = new File(parent, "SQL.txt");
3.3绝对路径和相对路径
绝对路径:从盘符开始的路径,表示一个完成的路径 (windows:C:\ linux /mac: / )
相对路径:不带盘符的路径即是相对路径 "."表示当前路径 “..”表示父路径
分隔符:
windows分隔符:\
mac分割符:/
java中有常量分隔符:File.separator ;*//根据系统不同自动生成对应分隔符 *String path = "test"+File.separator+"test.txt";
//windows test\test.txt **//linux test/test.txt
3.3File常见的方法
3.3.1创建和删除
File test = new File("/Users/gongdezhe/Desktop/IO/sql2.txt");
try {
public boolean createNewFile() throws IOException
// 创建新文件 当文件不存在时创建该文件并返回true,当文件存在是则返回false
boolean newFile = sql2.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
boolean mkdir()
// 通过抽象路径来创建目录,创建多级目录时,mkdir创建失败
test.mkdir();
boolean mkdirs()
//创建目录 创建多级目录
test.mkdirs();
//删除目录和文件
test.delete();
注意:创建文件时,如果文件不存在,则创建新文件,如果存在,则返回false
创建文件时,文件的父目录不存在时,创建文件会失败
3.3.2文件获取
String getAbsolutePath()
//获取当前文件或目录的绝对路径
test.getAbsolutePath();
System.out.println(test.getAbsolutePath());
String getPath()
//将抽象路径名转换为路径字符串
test.getPath();
System.out.println(test.getPath());
String getName()
//获取文件或者是目录的名称
test.getName();
System.out.println(test.getName());
long length()
//获取文件的字节数
test.length();
System.out.println(test.length());
String[] list()
//返回目录中文件和目录的名称的字符串数组
String[] list = test.list();
for (String i:list) {
System.out.println(i);
}
File[] listFiles()
//返回目录中文件和目录的名称file实例数组
File[] files = test.listFiles();
3.3.3过滤功能的接口方法
public interface FilenameFilter {
//参数为目录和指定过滤名称
//返回结果 true: 可以返回 false:不能返回
boolean accept(File dir, String name);
}
之后会持续更新,包括集合、java基础知识等,适合刚接触学习的人。
来源:https://blog.csdn.net/qq_45981295/article/details/117327072


猜你喜欢
- 什么是继承?多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。多个类可以称
- 这个例子用于演示在Spring Boot应用中如何验证Web 应用的输入,我们将会建立一个简单的Spring MVC应用,来读取用户输入并使
- 工厂模式Spring中bean的创建,默认是框架利用反射new出来的bean实例。有时候也会有一些复杂的情况。假设有一个飞机,属性如下,现在
- 在开发中常常使用到刷新分页,这里实现一个 RecyclerView 的简单的刷新分页操作,测试效果见文末,实现过程参考如下:实现思路加载更多
- 上标是指比同一行中其他文字稍高的文字,而下标是指比同一行中其他文字稍低的文字。在生活中,我们常见的平方米、立方米等符号以及化学中的各种元素符
- 由于Android项目开源所致,市面上出现了N多安卓软件市场。为了让我们开发的软件有更多的用户使用,我们需要向N多市场发布,软件升级后,我们
- 1、在Android studio中进行打开一个项目的文件之后,然后进行点击Android stuio中菜单中的“tools”的选项。在弹出
- 一、内部类介绍1.定义:一个类内部又嵌套了一个类,被嵌套的类就是内部类(inner class),嵌套其他类的称为外部类(outer cla
- 平时用到的库仓库名地址备注mavenCentralhttps://repo1.maven.org/maven2/
- 背景:SpringMVC如何响应json格式的数据?技术实现方式1:在Controller使用@RestController注解方式2:在C
- 一、RESTful 简介REST 是一种软件架构风格。REST:Representational State Transfer,表现层资源状
- 写项目时,要求仿微信朋友圈,双击顶栏置顶,于是封装了双击回调接口,方便大家拿来就用/** * Created by Administrato
- 这是主要使用到的jar 文件是:spring mvc +apache common-fileuplad第一步:web.xml 文件。【重点是
- 用java来打包文件生成压缩文件,有两个地方会出现乱码:内容的中文乱码问题:修改sun的源码。使用开源的类库org.apache.tools
- 上一篇文章中主要讲了GridView的简单应用,以网格的形式展示了一些图片,对于图片也有点击监听操作。但是,如果我们在浏览图片的时候需要一些
- C# 匿名函数、lambda表达式、Linq查询一、匿名函数的使用匿名函数是一个“内联”语句或表达式
- C#中的泛型和反射经常是一起工作的,因此这里就一次性的加以介绍了。由于c#是强类型语言,一般来说函数的返回类型和参数的类型都是一早写好的,这
- Android中的传递有两个方法,一个是Serializable,另一个是Parcelable。Serializable是J2SE本身就支持
- 主内存和工作内存Java 内存模型规定了所有的变量都存储在主内存中, 每条线程有自己的工作内存线程的工作内存中保存了被该线程使用的变量的主内
- 每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖!C语言运算符优先