java文件和目录_Java编程中最基础的文件和目录操作方法详解

文件操作

平常经常使用java对文件进行读写等操作,这里汇总一下常用的文件操作。

1、创建文件

public static boolean createfile(string filepath){

boolean result = false;

file file = new file(filepath);

if(!file.exists()){

try {

result = file.createnewfile();

} catch (ioexception e) {

e.printstacktrace();

}

}

return result;

}

2、创建文件夹

public static boolean createdirectory(string directory){

boolean result = false;

file file = new file(directory);

if(!file.exists()){

result = file.mkdirs();

}

return result;

}

3、删除文件

public static boolean deletefile(string filepath){

boolean result = false;

file file = new file(filepath);

if(file.exists() && file.isfile()){

result = file.delete();

}

return result;

}

4、删除文件夹

递归删除文件夹下面的子文件和文件夹

public static void deletedirectory(string filepath){

file file = new file(filepath);

if(!file.exists()){

return;

}

if(file.isfile()){

file.delete();

}else if(file.isdirectory()){

file[] files = file.listfiles();

for (file myfile : files) {

deletedirectory(filepath + "/" + myfile.getname());

}

file.delete();

}

}

5、读文件

(1)以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件

public static string readfilebybytes(string filepath){

file file = new file(filepath);

if(!file.exists() || !file.isfile()){

return null;

}

stringbuffer content = new stringbuffer();

try {

byte[] temp = new byte[1024];

fileinputstream fileinputstream = new fileinputstream(file);

while(fileinputstream.read(temp) != -1){

content.append(new string(temp));

temp = new byte[1024];

}

fileinputstream.close();

} catch (filenotfoundexception e) {

e.printstacktrace();

} catch (ioexception e) {

e.printstacktrace();

}

return content.tostring();

}

(2)以字符为单位读取文件,常用于读文本,数字等类型的文件,支持读取中文

public static string readfilebychars(string filepath){

file file = new file(filepath);

if(!file.exists() || !file.isfile()){

return null;

}

stringbuffer content = new stringbuffer();

try {

char[] temp = new char[1024];

fileinputstream fileinputstream = new fileinputstream(file);

inputstreamreader inputstreamreader = new inputstreamreader(fileinputstream, "gbk");

while(inputstreamreader.read(temp) != -1){

content.append(new string(temp));

temp = new char[1024];

}

fileinputstream.close();

inputstreamreader.close();

} catch (filenotfoundexception e) {

e.printstacktrace();

} catch (ioexception e) {

e.printstacktrace();

}

return content.tostring();

}

(3)以行为单位读取文件,常用于读面向行的格式化文件

public static list readfilebylines(string filepath){

file file = new file(filepath);

if(!file.exists() || !file.isfile()){

return null;

}

list content = new arraylist();

try {

fileinputstream fileinputstream = new fileinputstream(file);

inputstreamreader inputstreamreader = new inputstreamreader(fileinputstream, "gbk");

bufferedreader reader = new bufferedreader(inputstreamreader);

string linecontent = "";

while ((linecontent = reader.readline()) != null) {

content.add(linecontent);

system.out.println(linecontent);

}

fileinputstream.close();

inputstreamreader.close();

reader.close();

} catch (filenotfoundexception e) {

e.printstacktrace();

} catch (ioexception e) {

e.printstacktrace();

}

return content;

}

6、写文件

字符串写入文件的几个类中,filewriter效率最高,bufferedoutputstream次之,fileoutputstream最差。

(1)通过fileoutputstream写入文件

public static void writefilebyfileoutputstream(string filepath, string content) throws ioexception{

file file = new file(filepath);

synchronized (file) {

fileoutputstream fos = new fileoutputstream(filepath);

fos.write(content.getbytes("gbk"));

fos.close();

}

}

(2)通过bufferedoutputstream写入文件

public static void writefilebybufferedoutputstream(string filepath, string content) throws ioexception{

file file = new file(filepath);

synchronized (file) {

bufferedoutputstream fos = new bufferedoutputstream(new fileoutputstream(filepath));

fos.write(content.getbytes("gbk"));

fos.flush();

fos.close();

}

}

(3)通过filewriter将字符串写入文件

public static void writefilebyfilewriter(string filepath, string content) throws ioexception{

file file = new file(filepath);

synchronized (file) {

filewriter fw = new filewriter(filepath);

fw.write(content);

fw.close();

}

}

目录操作目录是一个文件可以包含其他文件和目录的列表。你想要在目录中列出可用文件列表,可以通过使用 file 对象创建目录,获得完整详细的能在 file 对象中调用的以及有关目录的方法列表。

创建目录这里有两个有用的文件方法,能够创建目录:

mkdir( ) 方法创建了一个目录,成功返回 true ,创建失败返回 false。失败情况是指文件对象的路径已经存在了,或者无法创建目录,因为整个路径不存在。

mkdirs( ) 方法创建一个目录和它的上级目录。

以下示例创建 “/ tmp / user / java / bin” 目录:

import java.io.file;

public class createdir {

public static void main(string args[]) {

string dirname = "/tmp/user/java/bin";

file d = new file(dirname);

// create directory now.

d.mkdirs();

}

}

编译并执行以上代码创建 “/ tmp /user/ java / bin”。

提示:java 自动按 unix 和 windows 约定来处理路径分隔符。如果在 windows 版本的 java 中使用正斜杠(/),仍然可以得到正确的路径。

目录列表如下,你能够用 file 对象提供的 list() 方法来列出目录中所有可用的文件和目录

import java.io.file;

public class readdir {

public static void main(string[] args) {

file file = null;

string[] paths;

try{

// create new file object

file = new file("/tmp");

// array of files and directory

paths = file.list();

// for each name in the path array

for(string path:paths)

{

// prints filename and directory name

system.out.println(path);

}

}catch(exception e){

// if any error occurs

e.printstacktrace();

}

}

}

基于你/ tmp目录下可用的目录和文件,将产生以下结果:

test1.txt

test2.txt

readdir.java

readdir.class

希望与广大网友互动??

点此进行留言吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值