String 字符串和文件操作方法
目录
String 字符串和文件操作方法
1. String 字符串
1.1 字符串存储问题和equals方法必要性
package com.qfedu.a_string;
/**
* 字符串存储问题和 equals 方法
* @author Anonymous
*
*/
public class Demo1 {
public static void main(String[] args) {
String str1 = "红牛";
String str2 = "红牛";
String str3 = new String("红牛");
String str4 = new String(str2);
// System.out.println(str1);
// System.out.println(str2);
// System.out.println(str3);
// System.out.println(str4);
/*
* == 判断仅比较两个引用数据类型变量存储的地址是否一致,
*/
System.out.println("str1 == str2 : " + (str1 == str2)); // t
System.out.println("str2 == str3 : " + (str2 == str3)); // f
System.out.println("str3 == str4 : " + (str3 == str4)); // f
System.out.println("str4 == str1 : " + (str4 == str1)); // f
System.out.println();
/*
* 字符串 重写 Object 类内的 equals 方法是按照字符串数据内容判断两个字符串是否一致。
* 字符串比较必须使用 equals 方法
*/
System.out.println("str1.equals(str2) : " + (str1.equals(str2)));
System.out.println("str2.equals(str3) : " + (str2.equals(str3)));
System.out.println("str3.equals(str4) : " + (str3.equals(str4)));
System.out.println("str4.equals(str1) : " + (str4.equals(str1)));
}
}
1.2 字符串相关方法
1.2.1 获取相关方法
char charAt(int index);
获取字符串指定下标对应的字符
int indexOf(String str);
找出指定字符串在当前调用方法字符串中第一次出现的下标位置
int indexOf(char ch);
找出指定字符在当前调用方法字符串中的第一次出现的下标位置
int lastIndexOf(String str);
找出指定字符串在当前调用方法字符串中最后一次出现的下标位置
int lastIndexOf(char ch);
找出指定字符在当前调用方法字符串中的最后一次出现的下标位置
int length();
获取字符串字符个数
1.2.2 判断方法
boolean endsWith(String str);
判断调用方法字符串是否以参数字符串结尾
boolean startsWith(String str);
判断调用方法字符串是否以参数字符串开头
boolean isEmpty();
判断调用方法字符串是否为 空字符串
"" 空字符串 JDK 1.6 以上版本有效
boolean contains(String str);
判断参数字符串是否为调用方法字符串的子字符串
boolean equals(Object obj); Override equals method in type Object
判断两个字符串是否一致
boolean equalsIgnoreCase(String str);
不区分大小写比较字符串数据内容
1.2.3 转换方法
String(char[] arr);
【构造方法】将字符数组转换成一个字符串
String(char[] arr, int offset, int length);
【构造方法】将参数字符数组,从指定下标 offset 开始,计数 length 长度,转换为字符串
例如:
char[] arr = {'A', 'B', 'C', 'D', 'E', 'F'};
new String(arr, 2, 3) ==> "CDE"
static String valueOf(char[] arr);
将字符数组转换成一个字符串
static String valueOf(char[] arr, int offset, int length);
将参数字符数组,从指定下标 offset 开始,计数 length 长度,转换为字符串
例如:
char[] arr = {'A', 'B', 'C', 'D', 'E', 'F'};
new String(arr, 2, 3) ==> "CDE"
char[] toCharArray();
将字符串转换为字符数组
1.2.4 其他方法
/*
【注意事项】
以下方法返回值大多数 String 字符串,字符串对于开发而言是一个常量,所有基于字符串的修改操作方法,都是根据原字符串创建新的字符串进行操作,原串不变!!!
*/
String replace(char oldChar, char newChar);
调用方法字符串使用 newChar 替换指定的 oldChar,替换结果通过方法返回值得到,原串不变
String substring(int begin);
从指定下标开始,到整个字符串末尾获取子字符串
String substring(int begin, int end);
从指定下标开始,到指定下标结束,获取子字符串,要头不要尾
String toUpperCase();
字符串中的所有小写英文字母,转换为大写英文字母
String toLowerCase();
字符串中的所有大写英文字母,转换为小写英文字母
String trim();
去除字符串两边的无效空格
1.2.5 重点方法
String[] split(String str);
根据指定字符串切割调用方法字符串,返回值是切割之后得到的字符串数组
2. 文件管理
2.1 File类概述
今天涉及到的内容只是操作文件或者文件夹,不涉及文件内容操作(没有 IO 流)
File类 是 SUN 公司在Java中定义的用于管理文件或者文件夹对应的类,包含针对于文件的信息获取,创建,删除,移动,拷贝等一系列操作。
构造方法:
File(String path);
根据提供的文件路径,创建对应的 File 对象,该路径可以是【绝对路径】也可以是【相对路径】
File(String parent, String childName);
根据父目录文件路径,和子文件或者子文件夹名称,创建File对象
File(File parent, String childName);
根据父目录对应的File对象,和子文件或者子文件夹名称,创建File对象。
绝对路径:
对于 Windows 操作系统,从盘符位置到指定文件的路径
例如:
C:/aaa/1.txt
相对路径:
对于任何的操作系统,去往其他路径的捷径
. 当前目录
.. 当前目录的上级目录
路径分隔符:
/ 【推荐】适用于 Linux UNIX macOS Windows 包括网络地址
\\ 有且只用于 windows 中
package com.qfedu.b_file;
import java.io.File;
/*
* File类构造方法演示和路径问题
*/
public class Demo1 {
public static void main(String[] args) {
/*
* 【注意】
* File 对象创建使用的路径,文件和文件夹名称,不校验是否合法,是否存在,是否合理
*/
File file1 = new File("Z:/aaa/1.txt");
File file2 = new File("Z:/aaa", "1.txt");
File parent = new File("Z:/aaa");
File file3 = new File(parent, "1.txt");
System.out.println(file1);
System.out.println(file2);
System.out.println(file3);
}
}
2.2 创建文件或者文件夹
boolean createNewFile();
通过 File 类对象调用,创建 File 类对象存储地址对应的普通文件,创建成功返回true,失败返回false
失败原因:
1. 对应路径下已存在同名文件
2. 对应路径文件夹没有【写入权限】
3. 路径不合法,指定路径不存在
boolean mkdir();
通过 File 类对象调用,创建 File 类对象存储地址对应的文件夹,创建成功返回 true ,失败返回false
失败原因:
1. 对应路径下已存在同名文件夹
2. 对应路径文件夹没有【写入权限】
3. 路径不合法,指定路径不存在
mkdirs();
通过 File 类对象调用,创建 File 类对象存储地址对应的文件夹,如果中间路径不存在,可以将中间路径文件夹一并创建,创建成功返回 true ,失败返回false
失败原因:
1. 对应路径下已存在同名文件夹
2. 对应路径某一个文件夹没有【写入权限】
3. 路径不合法,指定路径不存在 例如: 电脑只有CDE盘, 路径选择 G 盘
boolean renameTo(File dest);
通过 File 类对象调用,将当前 File 对象对应文件或者文件夹 renameTo 目标文件或者文件夹,可以用于移动文件或者文件夹,重命名文件或者文件夹。
mac
/users/用户名
直接打开终端
> cd ~ # 回到家目录
> pwd ==> 展示当前工作目录
2.3 删除文件或者文件夹
boolean delete();
通过 File 类对象调用,删除对应文件或者文件夹,该删除操作是直接从磁盘上抹掉数据,无法还原,同时注意该方法无法删除非空文件夹。
void deleteOnExit();
通过 File 类对象调用,标记 File 类对象对应文件或者文件夹,在 JVM 退出整个程序的情况下,将对应文件或者文件夹删除。
一般用于 日志文件删除,操作文件删除,缓冲文件删除
2.4 文件或者文件夹相关判断方法
boolean isFile();
通过 File 类对象调用,判断 File 类对象对应路径是不是普通文件
boolean isDirectory();
通过 File 类对象调用,判断 File 类对象对应路径是不是文件夹
boolean exists();
通过 File 类对象调用,判断 File 类对象对应路径文件或者文件夹是否存在
boolean isHidden();
通过 File 类对象调用,判断 File 类对象对应路径文件或者文件夹是否为隐藏属性
boolean isAbsolute();
通过 File 类对象调用,判断 File 类对象对应路径是否为绝对路径
2.5 与文件或者文件夹无关的方法 【纯字符串解析】
以下方法和文件或者文件夹是否存在完全无关,仅通过实例化 File 对象使用的文件或者文件夹路径,完成字符串解析操作
String getPath();
通过 File 类对象调用,获取 File 对象对应文件或者文件夹的路径
String getParent();
通过 File 类对象调用,获取 File 对象对应文件或者文件夹的父目录路径
String getName();
通过 File 类对象调用,获取 File 对象对应文件或者文件夹的名称
2.6 获取文件内容
String getAbsolutePath();
通过 File 类对象调用,获取当前 File 对象对应文件或者文件夹的绝对路径。
long lastModified();
通过 File 类对象调用,获取当前 File 对象对应文件或者文件夹的最后修改时间。
时间 ==> 时间戳类型
时间戳类型 从 1970年1月1日 00:00:00 到最后修改时间的 秒数
long length();
通过 File 类对象调用,获取当前 File 对象对应文件或者文件夹的占用硬盘字节码
tips:如果对应的是文件夹,返回值 0L 或者 4096L