文档库 最新最全的文档下载
当前位置:文档库 › Java文件操作总结

Java文件操作总结

标题:Java文件操作总结(一)

内容:
由于一直在使用Java file功能,但是总是很混乱,今天将Java File的所有功能做一个总结。

Java文件操作我个人认为重要的问题有:

a:如何跨平台问题
b:文件编码问题,尤其是多语言平台情况下如何正常工作。
c:文件读写效率、操作效率
d:文件加密和文件安全
e:文件快速检索,强烈建议使用lence进行文件检索及文件管理。

以下是本人做的一些整理:

一:建立文件

File file1 = new File ("C:\\temp\\myNote.txt"); // in Windows 这是windows文件系统下的方法
File file2 = new File ("/tmp/myNote.txt"); // in Linux/Unix unix文件系统的方法

最安全的建立文件的方法:

File myFile = new File("C:" + File.separator + "jdk1.5.0" + File.separator, "File.java");

File.separator 是文件路径符号。
System.out.println(myFile.getName());//取得文件名称的方法
System.out.println(myFile.getPath());//取得文件路径的方法
System.out.println(myFile.isAbsolute());//判断文件是否完整
System.out.println(myFile.getParent());//取得文件的根目录
System.out.println(myFile.exists());//判断文件是否存在
System.out.println(myFile.isDirectory());//判断是否是目录
System.out.println(myFile.isFile());//判断是否是文件
System.out.println(myFile.isHidden());//判断是否是隐藏文件
System.out.println(myFile.canRead());//判断是否可读
System.out.println(myFile.canWrite());//判断是否可写

File myFile_A = new File("C:" + File.separator);
for(String s: myFile_A.list()){//读取某个目录下所有文件
System.out.println(s);
}

File myFile_C=new File("d:/test.txt");
System.out.println(new Date(myFile_https://www.wendangku.net/doc/6f10175938.html,stModified()));//最后一次编辑时间
myFile_C.renameTo(new File("c:/text.txt.bak"));//从命名
myFile_C.setReadOnly();//设置为只读
二:文件过滤方法

java提供了很好的文件过滤借口:FilenameFilter 过滤以后的文件可以用listFiles显示出来。效率还是非常高的。

import java.io.File;
import java.io.FilenameFilter;
import java.util.Date;
/**
* 文件过滤器过滤类
* @author fb
*/
class FileListFilter implements FilenameFilter {
private String name;
private String extension;
public FileListFilter(String name, String extension) {
https://www.wendangku.net/doc/6f10175938.html, = name;
this.extension = extension;
}
public boolean accept(File directory, String filename) {
boolean fileOK = true;
if (name != null) {
fileOK = filename.startsWith(name);
}
if (extension != null) {
fileOK = filename.endsWith('.' + extension);
}
return fileOK;
}
}
测试方法:

import java.io.File;
import java.io.FilenameFilter;
import java.util.Date;
/**
* 文件过滤器 运行函数
* @author fb
*/
public class Run_FileListFilter {
public static void ma

in(String[] args) {
File myDir = new File("d:/");
FilenameFilter select = new FileListFilter("F", "txt");
File[] contents = myDir.listFiles(select);
for (File file : contents) {
System.out.println(file + " is a " + (file.isDirectory() ? "directory" : "file")
+ " last modified on\n" + new Date(https://www.wendangku.net/doc/6f10175938.html,stModified()));
}
}
}
三:建立目录、文件、临时文件、删除文件或目录
import java.io.File;
import java.io.IOException;

public class MakeDir {

public static void main(String[] args) {
File myFile=new File("D:/myFubin/");
if(myFile.mkdir()){//单级目录
System.out.println("建立目录成功");
}else{
System.out.println("建立目录失败");
}

File myFile_A=new File("D:/myFubin/test/");
if(myFile_A.mkdirs()){//多级目录
System.out.println("建立目录成功");
}else{
System.out.println("建立目录失败");
}

File file = new File("d:\\myFubin\\test.txt");
try {
file.createNewFile();//建立空文件
} catch (IOException e) {
e.printStackTrace();
}

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

if(file.delete()){//删除文件或删除目录
//删除文件的另外一个方法:file.deleteOnExit() 这种方法是在程序退出的时候将文件删除
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}

try {
File tmp = File.createTempFile("foo", "tmp");//建立临时文件
System.out.println("刚才建立的临时文件在:" + tmp.getCanonicalPath());
} catch (IOException e) {
e.printStackTrace();
}


}

}



标题:Java文件操作总结(二)

import java.io.File;
/**
* 文件操作里Java 1.6 新功能:查询磁盘空间
*/
public class SpaceChecker {

public static void main(String[] args) {
File[] roots = File.listRoots();//取得所有的根,如果是windows系统那么将取得所有的磁盘
for (int i = 0; i < roots.length; i++) {
System.out.println(roots[i]);
System.out.println("Free space = " + roots[i].getFreeSpace());
System.out.println("Usable space = " + roots[i].getUsableSpace());
System.out.println("Total space = " + roots[i].getTotalSpace());
System.out.println();
}
}
}



标题:Java文件操作总结(三)

内容:
使用Stream读文件


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class InPut {
public static void main(String[] args) {
File myFile=new File("d:/text.txt");
try {
FileInputStream aFileInputStream=new FileInputStream(myFile);
//System.out.print(aFileInputStream.read());//
byte[] buffer = new byte[1024];//设置一次读取的数量
while (true) {
int bytesRead = aFileInputStream.read(buffer);
System.out.println(bytesRead);
if (bytesRead == -1)//当其为表示已经读完,那么停止循环表示一次读

入完成
break;
System.out.println(bytesRead);
System.out.write(buffer, 0, bytesRead);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}


使用Stream写文件

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class OutPut_A {

public static void main(String[] args) {
File myFile=new File("d:/Test2.txt");
try {
FileOutputStream aVar=new FileOutputStream(myFile);
byte[] aDate={65,66,67,68,69,70,71};//向文件写入:ABCDEFG
aVar.write(aDate);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}


将文件的内容写入另外一个文件

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class OutPut {

public static void main(String[] args) {
File myFile=new File("d:/text.txt");
File myFile_A=new File("d:/test1.txt");
try {
FileInputStream aFileInputStream=new FileInputStream(myFile);
FileOutputStream aFileOutputStream=new FileOutputStream(myFile_A);
byte[] my_Date=new byte[1024];
int i=aFileInputStream.read(my_Date);
while(i!=-1){
aFileOutputStream.write(my_Date,0,i);
i=aFileInputStream.read(my_Date);
}
aFileInputStream.close();
aFileOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

}

相关文档