IO流一
Posted xuweiweiwoaini
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO流一相关的知识,希望对你有一定的参考价值。
1 File类的使用
1.1 File类的概念
- java.io.File类是文件或文件目录路径的抽象表示形式,和平台无关。
- File类能创建、删除、重命名文件和目录,但File类不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
- 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象与之对应,但是Java程序中的File对象,可能没有一个真实存在的文件或目录。
- File对象可以作为参数传递给流的构造器。
1.2 File类的构造器
- 根据路径(相对路径和绝对路径)创建File对象。
public File(String pathname)
- 示例:
package day19; import java.io.File; /** * @motto: 一身转战三千里,一剑可当百万兵。 * @author: 不为往事扰,余生只爱笑。 * @version: 1.0 * @since: 2019-06-30 */ public class FileTest public static void main(String[] args) File file = new File("D:\\a.txt");
- 以parent为父路径,child为子路径创建File对象。
public File(String parent, String child)
- 示例:
package day19; import java.io.File; /** * @motto: 一身转战三千里,一剑可当百万兵。 * @author: 不为往事扰,余生只爱笑。 * @version: 1.0 * @since: 2019-06-30 */ public class FileTest public static void main(String[] args) File file = new File("D:\\","a.txt");
- 根据一个父File对象和子文件路径创建File对象。
public File(File parent, String child)
- 示例:
package day19; import java.io.File; /** * @motto: 一身转战三千里,一剑可当百万兵。 * @author: 不为往事扰,余生只爱笑。 * @version: 1.0 * @since: 2019-06-30 */ public class FileTest public static void main(String[] args) File file = new File(new File("D:\\"),"a.txt");
1.3 File类的路径分隔符
- 路径中的每级目录之间使用路径分割符隔开。
- 路径分隔符和系统有关:
- Windows和DOS系统默认使用"\"来表示。
- UNIX使用“/”来表示、
- Java程序支持跨平台运行,因此路径分隔符要慎用。
- 为了解决不同平台的路径分隔符不同,File提供了一个常量,来表示路径分隔符。
public static final String separator = "" + separatorChar;
1.4 File类的常用方法
- 获取绝对路径:
public String getAbsolutePath()
- 示例:
package day19; import java.io.File; /** * @motto: 一身转战三千里,一剑可当百万兵。 * @author: 不为往事扰,余生只爱笑。 * @version: 1.0 * @since: 2019-06-30 */ public class FileTest public static void main(String[] args) File file = new File(new File("D:\\"),"a.txt"); System.out.println("获取绝对路径:" + file.getAbsolutePath());//实际情况下,此文件或目录是否存在,并不重要
- 获取路径:
public String getPath()
- 示例:
package day19; import java.io.File; /** * @motto: 一身转战三千里,一剑可当百万兵。 * @author: 不为往事扰,余生只爱笑。 * @version: 1.0 * @since: 2019-06-30 */ public class FileTest public static void main(String[] args) File file = new File(new File("D:\\"),"a.txt"); System.out.println("获取路径:" + file.getPath());//此处的路径,是指File构造器中的路径(相对路径或绝对路径),实际情况下,文件或目录是否存在,对此方法而言,并不重要
- 获取名称:
package day19; import java.io.File; /** * @motto: 一身转战三千里,一剑可当百万兵。 * @author: 不为往事扰,余生只爱笑。 * @version: 1.0 * @since: 2019-06-30 */ public class FileTest public static void main(String[] args) File file = new File(new File("D:\\"),"c.txt"); System.out.println("获取名称:" + file.getName());//此处的名称,仅仅是表示File构造器中文件或目录的名称,实际文件或目录是否存在,对此方法来说,并不重要
- 获取文件或目录的上层路径(如果没有,返回null):
public String getParent()
- 示例:
package day19; import java.io.File; /** * @motto: 一身转战三千里,一剑可当百万兵。 * @author: 不为往事扰,余生只爱笑。 * @version: 1.0 * @since: 2019-06-30 */ public class FileTest public static void main(String[] args) File file = new File(new File("D:\\"), "c.txt"); System.out.println("获取上层文件或目录的路径:" + file.getParent());
- 获取文件的长度(即字节数,如果文件不存在,返回0,不能获取目录的长度):
public long length()
- 示例:
package day19; import java.io.File; /** * @motto: 一身转战三千里,一剑可当百万兵。 * @author: 不为往事扰,余生只爱笑。 * @version: 1.0 * @since: 2019-06-30 */ public class FileTest public static void main(String[] args) File file = new File(new File("D:\\"), "c.txt"); System.out.println("获取文件的长度:" + file.length());
- 获取最后一次的修改时间,毫秒值(如果文件不存在,返回0):
public long lastModified()
- 示例:
package day19; import java.io.File; /** * @motto: 一身转战三千里,一剑可当百万兵。 * @author: 不为往事扰,余生只爱笑。 * @version: 1.0 * @since: 2019-06-30 */ public class FileTest public static void main(String[] args) File file = new File(new File("D:\\"), "c.txt"); System.out.println("获取最后一次的修改时间:" + file.lastModified());
- 获取指定目录下的所有文件或文件目录的名称数组:
public String[] list()
- 示例:
package day19; import java.io.File; /** * @motto: 一身转战三千里,一剑可当百万兵。 * @author: 不为往事扰,余生只爱笑。 * @version: 1.0 * @since: 2019-06-30 */ public class FileTest public static void main(String[] args) File file = new File("D:\\"); String[] fileName = file.list(); for (String name : fileName) System.out.println("指定目录下的文件名:" + name);
- 获取指定目录下的所有文件或目录的File数组:
public File[] listFiles()
- 示例:
package day19; import java.io.File; /** * @motto: 一身转战三千里,一剑可当百万兵。 * @author: 不为往事扰,余生只爱笑。 * @version: 1.0 * @since: 2019-06-30 */ public class FileTest public static void main(String[] args) File[] files = new File("D:\\").listFiles(); for (File file : files) System.out.println("获取指定目录下的文件或目录的File对象:" + file);
以上是关于IO流一的主要内容,如果未能解决你的问题,请参考以下文章
阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_11_字节输入流一次读取多个字节