我是一个计算机专业研0的学生卡蒙Camel🐫🐫🐫(刚保研)
记录每天学习过程(主要学习Java、python、人工智能),总结知识点(内容来自:自我总结+网上借鉴)
希望大家能一起发现问题和补充,也欢迎讨论👏👏👏
文章目录
Java IO基础知识
IO 即 Input
/Output
,输入和输出。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。
根据数据的处理方式又分为字节流和字符流。
InputStream
/Reader
: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。
OutputStream
/Writer
: 所有输出流的基类,前者是字节输出流,后者是字符输出流。
区分原因:
- 字符流是由 Java 虚拟机将字节转换得到的,这个过程还算是比较耗时;
- 如果我们不知道编码类型的话,使用字节流的过程中很容易出现乱码问题。
IO流是一种流式的数据输入/输出模型:
- 二进制数据以
byte
为最小单位在InputStream
/OutputStream
中单向流动; - 字符数据以
char
为最小单位在Reader
/Writer
中单向流动。
Java的IO系统是基于流的概念构建的,所有的I/O都是通过流来完成的。流可以看作是一个连续的数据序列,这些数据可以从一个地方传输到另一个地方。
File类
File
类位于java.io
包中,主要用于表示文件或目录路径名。
public class File implements Serializable, Comparable<File>{
...
}
构造函数:
File(String pathname) |
根据给定的路径字符串创建一个新的 File 实例。(路径可以是绝对路径或相对路径) |
---|---|
File(String parent, String child) |
根据父路径字符串和子路径字符串创建一个新的 File 实例。parent 是父目录的路径,child 是文件或子目录的名称。 |
File(File parent, String child) |
根据父 File 对象和子路径字符串创建一个新的 File 实例。parent 是父目录的 File 对象,child 是文件或子目录的名称。 |
File(URI uri) |
根据给定的 URI 创建一个新的 File 实例。 |
- URI: 统一资源标识符,包括URL和URN。
- URL: 统一资源定位符,用于定位资源的位置。
- URN: 统一资源名称,用于唯一命名资源。
File类常用方法:
boolean exists() |
检查文件或目录是否存在 |
---|---|
boolean isFile(); boolean isDirectory() |
检查是否为文件检查是否为目录 |
boolean createNewFile() |
创建新文件 |
boolean mkdir();boolean mkdirs() |
创建目录创建多级目录 |
boolean delete() |
删除文件或目录 |
String getPath();String getAbsolutePath();String getCanonicalPath() |
获取文件路径 |
代码例子:
public class FileExample {
public static void main(String[] args) {
// 定义文件路径
String filePath = "example.txt";
File file = new File(filePath);
try {
// 创建新文件
if (file.createNewFile()) {
System.out.println("File created: " + file.getName());
} else {
System.out.println("File already exists.");
}
// 写入内容到文件
FileWriter writer = new FileWriter(file);
writer.write("Hello, World!\nThis is a test file."