Java中IO对系统的文件进行增删改查
1.什么是IO?
1.1.我自己的理解就是IO就是操作文件可以进行增删删改查,并且如果进行复制的话,假如是一个1kb的图片他的原理就是把那个转为二进制然后再指定的目录下输出这些二进制,从来达到复制粘贴的作用。其中IO流的1.输入字节流InputStream,2.输出字节流OutputStream,3.字符输入流Reader,4.字符输出流Writer。
IO的语法就是File,然后他的后面点是接口,假如是Flie.dele那就是删除。
例子:
//new File(所在的目录)
File file = new File("F:\\IyytytytytO\\tsts.txt");
//调用的方法 file.方法也名字。
boolean q = file.createNewFile();
调用的方法和方法的意思
boolean |
**[canExecute](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#canExecute())**() 测试应用程序是否可以执行此抽象路径名表示的文件。 |
|---|---|
boolean |
**[canRead](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#canRead())**() 测试应用程序是否可以读取此抽象路径名表示的文件。 |
boolean |
**[canWrite](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#canWrite())**() 测试应用程序是否可以修改此抽象路径名表示的文件。 |
int |
**[compareTo](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#compareTo(java.io.File))**(File pathname) 按字母顺序比较两个抽象路径名。 |
boolean |
**[createNewFile](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#createNewFile())**() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 |
static File |
**[createTempFile](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#createTempFile(java.lang.String, java.lang.String))**(String prefix, String suffix) 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。 |
static File |
**[createTempFile](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#createTempFile(java.lang.String, java.lang.String, java.io.File))**(String prefix, String suffix, File directory) 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 |
boolean |
**[delete](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#delete())**() 删除此抽象路径名表示的文件或目录。 |
void |
**[deleteOnExit](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#deleteOnExit())**() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。 |
boolean |
**[equals](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#equals(java.lang.Object))**(Object obj) 测试此抽象路径名与给定对象是否相等。 |
boolean |
**[exists](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#exists())**() 测试此抽象路径名表示的文件或目录是否存在。 |
File |
**[getAbsoluteFile](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#getAbsoluteFile())**() 返回此抽象路径名的绝对路径名形式。 |
String |
**[getAbsolutePath](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#getAbsolutePath())**() 返回此抽象路径名的绝对路径名字符串。 |
File |
**[getCanonicalFile](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#getCanonicalFile())**() 返回此抽象路径名的规范形式。 |
String |
**[getCanonicalPath](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#getCanonicalPath())**() 返回此抽象路径名的规范路径名字符串。 |
long |
**[getFreeSpace](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#getFreeSpace())**() 返回此抽象路径名分区中未分配的字节数。 |
String |
**[getName](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#getName())**() 返回由此抽象路径名表示的文件或目录的名称。 |
String |
**[getParent](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#getParent())**() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。 |
File |
**[getParentFile](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#getParentFile())**() 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。 |
String |
**[getPath](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#getPath())**() 将此抽象路径名转换为一个路径名字符串。 |
long |
**[getTotalSpace](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#getTotalSpace())**() 返回此抽象路径名分区大小。 |
long |
**[getUsableSpace](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#getUsableSpace())**() 返回此抽象路径名分区上可用于此虚拟机的字节数。 |
int |
**[hashCode](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#hashCode())**() 计算此抽象路径名的哈希码。 |
boolean |
**[isAbsolute](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#isAbsolute())**() 测试此抽象路径名是否为绝对路径名。 |
boolean |
**[isDirectory](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#isDirectory())**() 测试此抽象路径名表示的文件是否是一个目录。 |
boolean |
**[isFile](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#isFile())**() 测试此抽象路径名表示的文件是否是一个标准文件。 |
boolean |
**[isHidden](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#isHidden())**() 测试此抽象路径名指定的文件是否是一个隐藏文件。 |
long |
**[lastModified](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#lastModified())**() 返回此抽象路径名表示的文件最后一次被修改的时间。 |
long |
**[length](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#length())**() 返回由此抽象路径名表示的文件的长度。 |
String[] |
**[list](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#list())**() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 |
String[] |
**[list](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#list(java.io.FilenameFilter))**(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
File[] |
**[listFiles](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#listFiles())**() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 |
File[] |
**[listFiles](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#listFiles(java.io.FileFilter))**(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
File[] |
**[listFiles](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#listFiles(java.io.FilenameFilter))**(FilenameFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
static File[] |
**[listRoots](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#listRoots())**() 列出可用的文件系统根。 |
boolean |
**[mkdir](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#mkdir())**() 创建此抽象路径名指定的目录。 |
boolean |
**[mkdirs](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#mkdirs())**() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 |
boolean |
**[renameTo](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#renameTo(java.io.File))**(File dest) 重新命名此抽象路径名表示的文件。 |
boolean |
**[setExecutable](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#setExecutable(boolean))**(boolean executable) 设置此抽象路径名所有者执行权限的一个便捷方法。 |
boolean |
**[setExecutable](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#setExecutable(boolean, boolean))**(boolean executable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的执行权限。 |
boolean |
**[setLastModified](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#setLastModified(long))**(long time) 设置此抽象路径名指定的文件或目录的最后一次修改时间。 |
boolean |
**[setReadable](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#setReadable(boolean))**(boolean readable) 设置此抽象路径名所有者读权限的一个便捷方法。 |
boolean |
**[setReadable](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#setReadable(boolean, boolean))**(boolean readable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的读权限。 |
boolean |
**[setReadOnly](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#setReadOnly())**() 标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。 |
boolean |
**[setWritable](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#setWritable(boolean))**(boolean writable) 设置此抽象路径名所有者写权限的一个便捷方法。 |
boolean |
**[setWritable](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#setWritable(boolean, boolean))**(boolean writable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的写权限。 |
String |
**[toString](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#toString())**() 返回此抽象路径名的路径名字符串。 |
URI |
**[toURI](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#toURI())**() 构造一个表示此抽象路径名的 file: URI。 |
URL |
**[toURL](https://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/File.html#toURL())**() 已过时。 此方法不会自动转义 URL 中的非法字符。建议新的代码使用以下方式将抽象路径名转换为 URL:首先通过 方法将其转换为 URI,然后通过 方法将 URI 装换为 URL。 |
由于表格可能出现一点问题,我直接复制这个框里面
点击查看代码
boolean canExecute()
测试应用程序是否可以执行此抽象路径名表示的文件。
boolean canRead()
测试应用程序是否可以读取此抽象路径名表示的文件。
boolean canWrite()
测试应用程序是否可以修改此抽象路径名表示的文件。
int compareTo(File pathname)
按字母顺序比较两个抽象路径名。
boolean createNewFile()
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
static File createTempFile(String prefix, String suffix)
在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。
static File createTempFile(String prefix, String suffix, File directory)
在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
boolean delete()
删除此抽象路径名表示的文件或目录。
void deleteOnExit()
在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
boolean equals(Object obj)
测试此抽象路径名与给定对象是否相等。
boolean exists()
测试此抽象路径名表示的文件或目录是否存在。
File getAbsoluteFile()
返回此抽象路径名的绝对路径名形式。
String getAbsolutePath()
返回此抽象路径名的绝对路径名字符串。
File getCanonicalFile()
返回此抽象路径名的规范形式。
String getCanonicalPath()
返回此抽象路径名的规范路径名字符串。
long getFreeSpace()
返回此抽象路径名指定的分区中未分配的字节数。
String getName()
返回由此抽象路径名表示的文件或目录的名称。
String getParent()
返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
File getParentFile()
返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
String getPath()
将此抽象路径名转换为一个路径名字符串。
long getTotalSpace()
返回此抽象路径名指定的分区大小。
long getUsableSpace()
返回此抽象路径名指定的分区上可用于此虚拟机的字节数。
int hashCode()
计算此抽象路径名的哈希码。
boolean isAbsolute()
测试此抽象路径名是否为绝对路径名。
boolean isDirectory()
测试此抽象路径名表示的文件是否是一个目录。
boolean isFile()
测试此抽象路径名表示的文件是否是一个标准文件。
boolean isHidden()
测试此抽象路径名指定的文件是否是一个隐藏文件。
long lastModified()
返回此抽象路径名表示的文件最后一次被修改的时间。
long length()
返回由此抽象路径名表示的文件的长度。
String[] list()
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
String[] list(FilenameFilter filter)
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[] listFiles(FileFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles(FilenameFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
static File[] listRoots()
列出可用的文件系统根。
boolean mkdir()
创建此抽象路径名指定的目录。
boolean mkdirs()
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
boolean renameTo(File dest)
重新命名此抽象路径名表示的文件。
boolean setExecutable(boolean executable)
设置此抽象路径名所有者执行权限的一个便捷方法。
boolean setExecutable(boolean executable, boolean ownerOnly)
设置此抽象路径名的所有者或所有用户的执行权限。
boolean setLastModified(long time)
设置此抽象路径名指定的文件或目录的最后一次修改时间。
boolean setReadable(boolean readable)
设置此抽象路径名所有者读权限的一个便捷方法。
boolean setReadable(boolean readable, boolean ownerOnly)
设置此抽象路径名的所有者或所有用户的读权限。
boolean setReadOnly()
标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。
boolean setWritable(boolean writable)
设置此抽象路径名所有者写权限的一个便捷方法。
boolean setWritable(boolean writable, boolean ownerOnly)
设置此抽象路径名的所有者或所有用户的写权限。
String toString()
返回此抽象路径名的路径名字符串。
URI toURI()
构造一个表示此抽象路径名的 file: URI。
URL toURL()
已过时。 此方法不会自动转义 URL 中的非法字符。建议新的代码使用以下方式将抽象路径名转换为 URL:首先通过 toURI 方法将其转换为 URI,然后通过 URI.toURL 方法将 URI 装换为 URL。
3.增删改查的例子:
1.增
1.1 增加文件
如果在一个文件中创建一个文件例子:
增加方法:
createNewFile是可以进行增加文件,根据后缀名字进行定义文件类型
mkdir 增加文件夹,根据你所在的目录,然后创建文件夹 注:他的类型是文件夹,并费文件,如果你更改后缀名字他还是文件夹。
mkdirs 增加多个文件夹,如果你的目录下没有(test)这个文件夹),并且这个(test)文件下再次创建一个文件夹,可以使用mkdirs 创建多个文件夹
public static void main(String[] args) throws IOException {
File file = new File("F:\\IO\\test.txt");
Boolean b = file.createNewFile();
if (b == true){
System.out.println("创建成功"+b);
}else {
System.out.println("已有当前文件或者创建失败:"+b);
}
}
1.2 增加文件夹
public static void main(String[] args) throws IOException {
File file = new File("F:\\IO\\test");
boolean b = file.mkdir(); //注意:mkdir 只能在单个文件夹下创建文件夹,如果是在文件夹下创建多个文件夹,也就是说F:\\1\\2\\3 其中23没有文件夹,这都需要用到mkdirs,他和mkdir的区别在于多一个S,S是复数也就是多个的意思
if (b == true){
System.out.println("创建文件夹成功"+b);
}else {
System.out.println("创建文件夹失败"+b);
}
}
2.删
2.1 删除这个文件夹或者文件
删除方法:delete 删除所在路径中最后一个的文件或者文件夹
public static void main(String[] args) throws IOException {
File file = new File("F:\\IO\\test\\test");
boolean b = file.delete();
if (b == true){
System.out.println("删除成功"+b);
}else {
System.out.println("删除失败" +b);
}
}
3.查
查询方法:exists 查询所在文件是否存在,然后可以进行判断如果存在则删除等...
3.1 查询该文件是否存在
public static void main(String[] args) {
File file = new File("F:\\IO\\1.png");
boolean exists = file.exists();
if (exists){
System.out.println("此文件存在");
}else {
System.out.println("此文件不存在");
}
}
3.2查询该文件有多少字节
public static void main(String[] args) {
//length 查询所在文件的字节为多少。
File file = new File("F:\\IO\\1.png");
long length = file.length();
System.out.println("此文件有"+length+"字节");
}
4.改
改就是把文件进行复制到其他地方。
4.1把一个图片复制到指定的文件路径
public static void main(String[] args) throws Exception {
// 通过file拿取路径
File file = new File("F:\\IO\\1.png");
// 输入流,给file 路径
FileInputStream fileInputStream = new FileInputStream(file);
// 通过file1拿取路径
File file1 = new File("F:\\IO\\fz\\1.png");
//输出流,输出到file1路径中
FileOutputStream fileOutputStream = new FileOutputStream(file1);
//定义一个1024字节的数组
byte[] b = new byte[1024];
//循环字节输出 不等于-1则循环
while (fileInputStream.read(b) != -1){
//字节输出流。
fileOutputStream.write(b);
}
//关闭输入流
fileInputStream.close();
//关闭输出流
fileOutputStream.close();
}

浙公网安备 33010602011771号