本文汇集常用文件操作方法,包括文件的建立/检查与删除,目录的建立/检查与删除,取出目录中文件,文件属性的取得,对文件数据进行读写等等。
文件路径问题:
绝对路径如:E:\\test
在JSP中String path=request.getRealPath("");
在servlet和Action中 String path=servlet.getServletContext().getRealPath("");
文件夹操作
File dirFile =new File(servlet.getServletContext().getRealPath("/test")); if(!dirFile.exists()){ dirFile.mkdir();//新建文件夹 } if(dirFile.exists()){ dirFile.delete();//删除文件夹 } *注意:只能删除空的文件夹,这种方法不能删除含有文件的文件夹,解决方案是先删除文件夹内的所有文件和目录。
取出目录文件
String path=request.getRealPath("/test"); File d=new File(path);//建立当前目录中文件的File对象 File list[]=d.listFiles();//取得代表目录中所有文件的File对象数组 for(int i=0;i<list.length;i++){ //目录下的文件: if(list(i).isFile()){ System.out..println(list(i).getName()); } //目录下的目录: if(list(i). isDirectory ()){ System.out..println(list(i).getName()); } }
文件基本操作
String path = servlet.getServletContext().getRealPath("/test "); File f =new File(path,1.txt); if(!f.exists()){ f.createNewFile(); //生成文件 }else{ f.isFile();//是文件:不是文件 f.isDirectory();//是目录:不是目录 f.canRead();//可读取:不可读取 f.canWrite();//可写入:不可写入 f.isHidden();//是隐藏文件:不是隐藏文件 文件的最后修改日期为: new Date(f.lastModified()); f.delete (); //删除文件 }
读取文件数据
String path=request.getRealPath("."); FileReader fr=new FileReader(path + "\\ReadData.txt"); //关键在于读取过程中,要判断所读取的字符是否已经到了文件的末尾, 并且这个字符是不是文件中的断行符,即判断该字符值是否为13。 int c=fr.read();//从文件中读取一个字符 //判断是否已读到文件结尾 while(c!=-1){ out.print((char)c);//输出读到的数据 c=fr.read();//从文件中继续读取数据 if(c==13){//判断是否为断行字符 out.print("<br>");//输出分行标签 fr.skip(1);//略过一个字符 //c=fr.read();//读取一个字符 } } fr.close();
写数据到文件
String path=request.getRealPath("."); FileWriter fw=new FileWriter(path + "\\WriteData.txt");//建立FileWriter对象,并实例化fw BufferedWriter bw=new BufferedWriter(fw); //将字符串写入文件 bw.write("test!"); bw.newLine();//断行 bw.write("写数据到文本文件!"); bw.flush();//将数据更新至文件 fw.close();
如何将数据追加写入到文件
String path=request.getRealPath("."); RandomAccessFile rf=new RandomAccessFile(path + "\\WriteData.txt","rw"); //定义一个类RandomAccessFile的对象,并实例化 rf.seek(rf.length());//将指针移动到文件末尾 rf.writeBytes("\nAppend a line to the file!"); rf.close();//关闭文件流
取文件的后缀名
public static String getFileSuffix(String fileName){ String suffixName=null; if(filename!=null && fileName.indexOf(".")!=-1){ suffixName =fileName.substring(fileName.indexOf(".")); }else{ return "非法文件"; } return suffixName; }
Java.io.File类主要是完成了文件夹管理的命名、查询文件属性和处理目录等到操作它不进行文件夹内容的读取操作。以下描述了File类的主要常用方法。
File():构造函数,一般是依据文件所在的指定位置来创建文件对象。
CanWrite():返回文件是否可写。
CanRead():返回文件是否可读。
CompareTo(File pathname):检查指定文件路径间的顺序。
CreateNewFile():当文件不存在时生成空文件。
Delet():从文件系统内删除该文件。
DeleteOnExit():程序顺利结束时从系统中删除文件。
Equals(Object obj):检查特定对象的路径名是否相等。
Exists():判断文件夹是否存在。
GetAbsoluteFile():返回文件的完整路径。
GetAbsolutePath():返回文件的完整路径。
GetName():返回文件名称。 GetParent():返回文件父目录路径。
GetPath():返回文件的潜在相对路径。
GetParentFile():返回文件所在文件夹的路径。
HashCode():返回文件哈希码。
IsDirectory():判断该路径表示的是否为目录。
IsFile():判断该路径指示的是否是文件。
LastModified() :返回文件的最后修改时间标志。
Length():返回文件长度。
List():返回文件和目录清单。
Mkdir():生成指定的目录。
RenameTo(File dest):更名文件。
SetReadOnly():将文件设置为只读。
ToString():返回文件状态的字符串。
ToURL():将文件的路径字符串转换成URL。