j2se导入java文件_J2SE II一一Java中File的创建和使用

1.File对象对应你磁盘上的一个文件或者文件夹(路径),一个file对象代表了一个文件或者文件夹的引用,并不是直接物理上的。

2.File.separator: 连接符

public static final String separator与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。 该字符串包含一个字符,即separatorChar 。 (public static final char separatorChar与系统相关的默认名称分隔符。 该字段被初始化为包含系统属性值file.separator的第一个file.separator 。 在UNIX系统上,该字段的值为’/’ ; 在Microsoft Windows系统上是’\’ 。 )

3.创建File实例对象的几种方式

第一种:

File file = new File("D:\\abc.txt");

System.out.println(file);

第二种:

// parent 前面的路径 chid 在parent 后面追加的目录

File file2 = new File("D:\c", "abc.txt");

System.out.println(file2);

第三种:

File parent = new File("D:\\d");

File file3 = new File(parent, "qwe.doc");

System.out.println(file3);

4.创建文件

//返回的是否创建成功

try {

boolean flag = file.createNewFile();

System.out.println(flag);

} catch (IOException e) {

e.printStackTrace();

}

5.判断文件是否可读写canRead() canWrite()

System.out.println(file.canRead());

// 判断文件是否可写

System.out.println(file.canWrite());

6 . 判断文件是否存在exists(), 如果不存在则 创建, 存在则不创建了

if(!file2.exists()){// 判断文件是否存在

try {

file2.createNewFile();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}else{

System.out.println("已经存在了 ");

}

7 .创建文件夹 单层mkdir()

String string = "D:\\d";

File file = new File(string);

boolean flag = file.mkdir();// 创建文件夹 单层

System.out.println(flag);

8 .利用mkdirs 可以同时创建多层目录

File file2 = new File("D:\d\a\c\w");

file2.mkdirs();// 利用mkdirs 可以同时创建多层目录

9 . 如何区分 文件或者是 文件夹

if(file2.isDirectory()){// 判断是否是文件夹

System.out.println("是文件夹");

}

if(file3.isFile()){

System.out.println("是文件");

}

10 . 删除指定文件

File file2 = new File("D:\\d\\a\\c\\w");

File file3 = new File(file2, "abc.txt");

boolean flag2 = file3.delete();

System.out.println(flag2);

11 .length()判断文件的长度 而非文件夹的长度 ,返回long类型的

long l = file3.length();

System.out.println(l);

12 .得到路径

File file = new File("D:\d\a\c\w\abc.txt");

System.out.println(file.getPath());// 得到路径

13 .System.out.println(file.getParent());// 得到 文件的父目录

14 . System.out.println(file.getParentFile());// 得到 文件的父目录 返回的是File对象

15 .// 重命名 被其他 占用的时候 就不能重命名成功

File file3 = new File("D:\\d\\a\\c\\w\\hehe.txt");

boolean flag = file.renameTo(file3);

System.out.println(flag);

16.将文件过滤掉,文件夹保留

package com.qf.demo2;

import java.io.File;

import java.io.FilenameFilter;

/**

list() 返回 指定目录 下的 所有 的 目录和文件的名字 String[]

list(FilenameFilter filter) 得到的所有的名字 进行对应的过滤

listFiles() 返回 指定目录 下的 所有 的 目录和文件的 file 对象表现形式 File[]

listFiles(FilenameFilter filter) 得到的所有的名字 进行对应的过滤

*/

public class Test4 {

public static void main(String[] args) {

//File file = new File("D\\java上课内容\\2015新版PPT":);

File file = new File("D:\\java上课内容");

String[] strings = file.list();

/*for (String string : strings) {

System.out.println(string);

}

File[] files = file.listFiles();

for (File file2 : files) {

System.out.println(file2);

}*/

String[] strings2 = file.list(new MyFilter());

for (String string : strings2) {

System.out.println(string);

}

File[] file2 = file.listFiles(new MyFilter());

for (File file3 : file2) {

System.out.println(file3);

}

}

}

class MyFilter implements FilenameFilter{

// dir 指定的目录 name 是 dir 指定目录下的文件或者是文件夹的名字

public boolean accept(File dir, String name) {

// if(name.endsWith(".txt")){

// return false;

// }

// 假如是 文件 就 过滤掉, 如果是文件夹 , 就保留

// D:\java上课内容 \ java新版ppt

File file = new File(dir,name);

if(file.isFile()){

return false;

}

return true;// 返回ture 证明 保留下来的

// 返回 false 要被过滤掉的

}

}

17 .得到指定文件夹下的所有的文件

package com.qf.demo2;

import java.io.File;

/**

递归

自己调用自己

以此类推

同性质的问题 范围缩小, 直到 结果 可以直接的出来

需求: 得到指定文件夹下的所有的文件

计算 指定文件夹 所有文件 和 文件夹的个数

*/

public class Test5 {

public static void main(String[] args) {

findFile(new File("D:\\java上课内容"));

}

// 得到 指定文件夹下一层的所有的文件和文件

// // 如果是文件 打印输出, 如果文件夹

public static void findFile(File file){// 既可以代表文件也可以代表文件夹

// 保证非空

if(file != null){

// 保证是文件夹

if(!file.isFile()){

// 得到文件夹下的文件或者是 文件夹了

File[] files = file.listFiles();// 新版ppt ppt .pptx

for (File file2 : files) {// 把所有的文件和文件夹遍历一遍

findFile(file2);// 无论是文件还是文件夹 都可以调用 此方法

}

}else{

System.out.println(file);

}

}else{

System.out.println("闹着玩呢???");

}

}

}

1.错误示范1,输出的是创建文件夹 D:\filepath\test\test.txt。

public class FileTest {

public static void main(String[] args) throws IOException {

String fileName = "test.txt";

File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName);

if (!testFile.exists()) {

testFile.mkdirs();// 能创建多级目录

}

System.out.println("testFile:"+testFile);

}}

result--------------------testFile:D:\filepath\test\test.txt

f70c14f65ef6

image

2.错误示范2,如果 D:\filepath\test\ 文件夹不存在,会报错。

public class FileTest {

public static void main(String[] args) throws IOException {

String fileName = "test.txt";

File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName);

if (!testFile.exists()) {

testFile.createNewFile();// 能创建多级目录

}

System.out.println("testFile:"+testFile);

}}

f70c14f65ef6

image

3.实现在多重目录下创建文件:话不多说上正确代码:

package com.zte.FileTest;

import sun.net.ftp.FtpClient;

//import com.zte.ums.cnms.pm.load.enums.MppFileDirEnum;

import java.io.File;

import java.io.IOException;

public class FileTest {

public static void main(String[] args) throws IOException {

String fileName = "test.txt";

System.out.println("File.separator:" + File.separator);

File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName);

File fileParent = testFile.getParentFile();

//返回的是File类型,可以调用exsit()等方法

String fileParentPath = testFile.getParent();

//返回的是String类型

System.out.println("fileParent:" + fileParent);

System.out.println("fileParentPath:" + fileParentPath);

if (!fileParent.exists()) {

fileParent.mkdirs();// 能创建多级目录

}

if (!testFile.exists())

testFile.createNewFile();

//有路径才能创建文件

System.out.println(testFile);

String path = testFile.getPath();

String absolutePath = testFile.getAbsolutePath();

//得到文件/文件夹的绝对路径

String getFileName = testFile.getName();

//得到文件/文件夹的名字

System.out.println("path:"+path);

System.out.println("absolutePath:"+absolutePath); System.out.println("getFileName:"+getFileName);

}} result---------------------------------File.separator:\fileParent:D:\filepath\testfileParentPath:D:\filepath\testD:\filepath\test\test.txtpath:D:\filepath\test\test.txtabsolutePath:D:\filepath\test\test.txtgetFileName:test.txt

File类的常见方法(参考一位大牛的,不小心把链接关了)

1.创建。

boolean createNewFile(); //创建文件

boolean mkdir();创建文件夹

boolean mkdirs();创建多级文件夹。

2.删除。

boolean delete();

void deleteOnExit();在程序退出时删除文件。

3.判断。

boolean canExcute(); 判断是否可执行

boolean exists(); 文件事是否存在。

isFile();文件

isDirectory();文件夹

isHidden();//java能得到文件中的隐藏文件但是对隐藏文件时不能访问的

isAbsolute();//绝对路径即时不存在也能得到。

4.获取信息。

getName();

getPath();

getParent();

4.三种文件创建方式:

File file = new File("E:/...");//文件/文件夹路径对象

File file = new File("..." ,""...);//父目录绝对路径 + 子目录名称

File file = new File("...","...");//父目录File对象 + 子目录名称

file.exists():判断文件/文件夹是否存在

file.delete():删除文件/文件夹

file.isDirectory():判读是否为目录

file.isFile():判读是否为文件夹

file.mkdir():创建文件夹(仅限一级目录)

file.mkdirs():创建多及目录文件夹(包括但不限一级目录)

file.createNewFile():创建文件

file.getAbsolutePath():得到文件/文件夹的绝对路径

file.getName():得到文件/文件夹的名字

file.String():同样是得到文件/文件夹的绝对路径等于file.getAbsolutePath()

file.getParent():得到父目录的绝对路径String 不可以调用可以调用mkdir()方法

file.getParentFile():得到父目录的绝对路径的返回值是File型可以调用mkdir()方法

String[] gdir.list():得到目录的子目录\文件的名称(不是绝对路径)

File[] dir.listFiles():得到目录的子目录\文件事是否存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值