【Dongle】【Java】基础(六)之常用类——File
来源:互联网 发布:电脑桌面图片制作软件 编辑:程序博客网 时间:2024/06/05 15:09
File,顾名思义,就是文件类。最常用的就是获取一个文件,通过在视频上学习,了解了一些基本的相关知识。
想要获取路径,对于目录的分隔符肯定是必须要了解的。我用的是windows系统,所以系统的路径分隔符是“\”,但是在代码中”\"代表了转义符,所以如果只是输入一个反斜杠,就不能正确读取路径。而这里我总结了三种路径的方法:
第一种就是上面提到的,双反斜杠“\\"可以正确读取路径。
第二种是正斜杠“/”,也是windows系统中获取路径的方法。程序会自动转换成反斜杠获取系统路径。
第三种是利用文件的separate值获取系统路径。
第一种方法在windows系统里都可以正确实现功能,但是如果将程序换到linux系统下时,反斜杠写法就行不通了。因为linux系统的系统分隔符是正斜杠。所以,java将这一部分想到了,所以在file类中添加了separate值,用于获取当前系统的路径分隔符。
下面分析一个关于file类的java文件代码实例:
import java.io.*;public class TestFile {public static void main(String[] args){String separator = File.separator;//获取当前系统的路径分隔符String filename = "myfile.txt";//文件名String directory = "mydir1" + separator + "mydir2";//文件路径//String directory = "mydir1/mydir2";//正斜扛自动转换成反斜扛//String directory = "mydir1\\mydir2";//两个反斜扛才能表示一个斜杠,但是这种只适应windows系统,如果在linux系统下就不能成功,因为系统的路径分隔符不同,所以使用separator获取当前系统的路径分隔符最为合适File f = new File(directory,filename);//通过路径和文件名查找文件if (f.exists()) {//判断文件是否存在,如果存在 System.out.println("文件名: " + f.getAbsolutePath());//获取文件的绝对路径 System.out.println("文件大小:" + f.length());//获取文件的大小}else{//如果不存在文件f.getParentFile().mkdirs();//则在当前目录中创建在路径中的一系列目录:即在J2SE下,创建文件夹mydir1;在mydir1下创建mydir2文件夹;并定位到mydir2文件夹内。如果存在系列目录,则直接弥补未存在的子目录,或者直接等待创建文件(父路径是当前class文件的父路径)//如果是加入了包,则会直接找包的父目录try {f.createNewFile();//创建文件(在mydir2文件夹下创建文件myfile.txt)System.out.println("文件不存在,现已成功创建!");} catch (IOException e) {//如果创建出错 e.printStackTrace();//输出错误内容}}}}
- 获取文件的方法是File f = new File("路径”,"文件名(包含扩展名)").
- 得到文件的绝对路径:getAbsolutePath(),读取的是路径加文件名(含扩展名)
- 获取文件大小:f.length()
- 判断文件是否存在:f.exists()
- 创建路径下的系列目录:f.getParentFile().mkdirs(),这是在父级目录里面创建你所需要的目录,如果目录已经存在,就不需要再重新创建了,都是系统自动识别的。这里需要说明一点,这里的父目录是程序运行文件的父目录,即class文件的父目录。但是如果java文件被定义在某个包内,则这个父目录就是包的父目录了,而不再是class文件的父目录。
- 创建文件:f.creatNewFile(),f指你需要的路径。
还有一个必不可少的额方法,就是获取文件的子文件或子目录:listFiles。例如:
import java.io.*;public class FileList {public static void main(String[] args) {File f = new File("d:/编程软件");tree(f,1);}private static void tree(File f,int level) {String preStr ="";for (int i=0; i<level; i++) { preStr += " ";//子目录缩进四位}File[] childs = f.listFiles();//当前目录下所有的孩子们for (int i=0; i<childs.length; i++) { //System.out.println(childs[i].getName());//获取孩子的文件名 System.out.println(preStr + childs[i].getName()+" "+childs[i].length());//获取孩子的文件名 if (childs[i].isDirectory()) {//判断孩子是否存在孩子 tree(childs[i],level + 1);//存在孩子,递归tree方法 }}}}
0 0
- 【Dongle】【Java】基础(六)之常用类——File
- 【Dongle】【Java】基础(六)之常用类——String
- 【Dongle】【Java】基础(一)之输出
- 【Dongle】【Java】基础(三)之classpath
- 【Dongle】【Java】基础(四)之接口
- 【Dongle】【Java】基础(二)之主函数参数
- 【Dongle】【Java】基础(五)之包及引用
- 黑马程序员——Java基础(六)之常用类
- java基础之常用类—File类和String类(重点)
- 【Dongle】【Java】基础【八】之线程
- 【Dongle】【Java】基础(五)包扩展
- 【Dongle】【Java】基础(七)之流
- Java语言基础(六)之 —— 顺序结构
- Java语言基础(六)之 —— 循环嵌套
- Java语言基础(六)之 —— 跳转语句
- java基础之File类
- 【android基础学习之六】——常用效果1
- 【android基础学习之六】——常用效果1
- cd命令
- 5-16 两个有序链表序列的交集
- malloc后是否判断返回值为null?
- 第十一周项目一 -验证算法(2)二叉树构造算法的验证
- Angular2(一)--模块
- 【Dongle】【Java】基础(六)之常用类——File
- python 笔试题
- 链表
- 读取配置文件封装类(GetPrivateProfileString)
- Angularjs 报错 Argument 'MyController' is not a function, got undefined
- Android逐帧动画Animation_list篇
- bzoj1115
- 蓝牙之二十-设备类型
- 6 邮箱协议实现