java中的file文件怎么使用方法_Java中File的使用方法

一、文件基础知识

文件是一种常见的数据源,文件操作包括存储、读取、删除等。

1.绝对路径和相对路径

绝对路径为完整路径:"C:\windows\system\file.txt"

相对路径为当前路径下的子路径:"\workspace\test\Hello.java"

注意大小写保持一致。

2.文件名称

“文件名.后缀名”,后缀名表示文件类型。

值得注意:后缀名只是标示,和实际存储的文件没有必然联系。

二、File类

File的对象可以代表一个具体的文件或者一个文件夹。

1.File对象代表文件路径

//创建一个File类实例

importjava.io.File;public classFileDemo{public static voidmain(String [] args){//原始方法

File f = newFile(String pathname);//绝对路径(java中\作为转义符号,所以\\代表路径中\)

File f1 = new File("d:\\test\\1.txt'');

//相对路径

File f2 = new File("1.txt");//组合路径(父路径,子路径)

File f3 = new File("d:\\test\\","1.txt");

}

}

2.File类常用方法

public boolean creatNewFile():创建制定的文件,不能创建文件夹,并且路径必须存在。

public boolean delete():删除当前文件或者文件夹,文件夹必须为空,非空需先删除全部文件。

public boolean exists():判断当前文件或文件夹是否存在。

public String getAbsolutePath():获得当前文件或文件夹的绝对路径。

public String getName():获得当前文件或文件夹名称。例如c:\test\1.txt,返回1.txt。

public String getParent():获得当前路径父路径。例如c:\test\1.txt,返回c:\test。

public boolean isDirectory():判断当前对象是否为目录(文件夹)。

public boolean isFile():判断当前对象是否为文件。

public long length():获得文件实际大小,注意返回值为long类型。

public String[] list():获得当前文件夹下所有文件名和文件夹名称的String类数组,该名称不是绝对路径。

public File[] listFiles():获得当前文件夹下所有文件和文件夹的File对象数组。

public boolean mkdirs():创建文件夹,即使父目录不存在也会自动创建。

public boolean renameTo(File dest):修改文件名,如果当前路径下存在要修改为的文件名,则修改失败。

public boolean setReadOnly():设置当前文件或文件夹为只读。

3.举一个栗子

两个方法,第一个递归输出目录下所有文件名,第二个递归删除一个路径下所有文件。

importjava.io.File;/***File Class Demo*/

public classFileDemo{public static voidmain(String [] args){

File f= new File("D:\\test");

printAllFile(f);

deleteAllFile(f);

}/***Print all files and folders*/

public static voidprintAllFile(File f){

System.out.println(f.getName());if(f.isDirectory()){

File [] f1=f.listFiles();int len =f1.length;for(int i = 0; i < len; i++){

printAllFile(f1[i]);

}

}

}/***Delete all files and folders*/

public static voiddeleteAllFile(File f){//f is file, delete it

if(f.isFile())

f.delete();//f is folder, do recursion

else{

File f1[]=f.listFiles();int len =f1.length;for(int i = 0; i < len; i++){

deleteAllFile(f1[i]);

}

}//delete present folder

f.delete();

}

}

三、读取文件

将文件内容转为输入流。使用Scanner处理。可以使用InputStream或FileInputStream。

举一个栗子:

import java.io.*

/***Using FileInputStream*/

public classReadFile1{public static voidmain(String [] args){

FileInputStream fis= null;try{

fis= new FileInputStream("e:\\a.txt");byte[] data = new byte[1024];int i = 0;int n =fis.read();while(n != -1){

data[i]= (byte)n;

i++;

n=fis.read();

}

String s= new String(data,0,i);

System.out.println(s);

}catch(Exception e){

e.printStackTrace();

}finally{try{

fis.close();

}catch(Exception e){

}

}

}

四、写文件

基本输出流包括OutputStream和Writer两个,区别是OutputStream体系中的类是按照字节写入的,而Writer体系中的类是按照字符写入的。

流程:

建立输出流

向流中写入数据

关闭输入流

举个栗子

import java.io.*;/***Using FileOutputStream*/

public classWriteFile1{public static voidmain(String [] args){

String s= "Java Language";int n = 100;

FIleOutputStream fos= null;try{

fos= new FileOutputStream("e:\\out.txt");byte [] b1 =s.getBytes();byte [] b2 = "\r\n".getBytes();byte [] b3 =String.valueOf(n).getBytes();

fos.write(b1);

fos.write(b2);

fos.write(b3);

}catch(Exception e){

e.pritStackTrace();

}finally{try{

fos.close();

}catch(Exception e){}

}

}

}

写入txt的内容为:

Java Language

100

以上

私货:

4.22 20:40:留待读完Java的文件操作后整理

4.23 13:10:开始整理~文件这边还是挺好玩的

4.23 13:43: 歇一会来写文件流

4.25 23:00: 一个不小心歇到了这时候……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值