用JAVA实现的类FileOperate,包括文件建立,查询,删除等。。
view plain copy to clipboard print ?import java.io.*; public class FileOperate { //创建指定的目录makeDirectory public static void makeDirectory(String path){ File file = new File(path); //如果这个目录不存在,就创建一个 if(!file.exists()){ file.mkdirs(); } } //清空指定目录中的所有文件emptyDirectory方法 public static boolean emptyDirectory(String path){ boolean flag = true; File file = new File(path); //如果文件不存在 if(!file.exists()) flag = true; if(file.isFile()){ if(file.delete()==false){ flag = false; } } else{ File[] dir = file.listFiles(); for(int i=0;i<dir.length;i++){ emptyDirectory(dir[i].getAbsolutePath()); } } return flag; } //listAll方法:列出目录中的所有内容,包括其子目录中的内容。 public static void listAll(String path){ File file = new File(path); //如果文件不存在 if(!file.exists()) return ; if(file.isFile()){ System.out.println(file.getAbsolutePath()); } else{ System.out.println(file.getAbsolutePath()); File[] dir = file.listFiles(); for(int i=0;i<dir.length;i++){ emptyDirectory(dir[i].getAbsolutePath()); } } } //getTypePart方法:得到指定目录下所有以某后缀命名的所有文件名。 //我使用了类中套类的方法,讲一个继承FilenameFilter接口的ListFilter写到了类里面 class ListFilter1 implements FilenameFilter{ private String type =""; public ListFilter1(String _type){ type = _type; } public boolean accept(File dir, String name) { boolean y = true; try{ name = name.toLowerCase(); y = name.endsWith(type); }catch(NullPointerException e){} return y; } } public void getTypePart(String path,String type){ File f = new File(path); ListFilter lf = new ListFilter(type); String[] files = f.list(lf); for(int i=0;i<files.length;i++){ System.out.println(files[i]); } } //搜索文件SearchFile方法:搜索给定目录下的指定文件,支持模糊查询和深度搜索。 //如:test.*,则返回所有以test.开头的文件名。 //也是采用类中套类的方法 class ListFilter2 implements FilenameFilter{ String name = "",type = ""; public ListFilter2(String allname){ int i,j; i = allname.indexOf('*'); j = allname.indexOf('.'); //不存在模糊查找 if(i<0){ name = allname.substring(0,j-1); type = allname.substring(j+1); } //模糊查找出现在文件名当中 else if(i<j){ name = allname.substring(0,i-1); type = allname.substring(j+1); } //模糊查找出现在文件类型中 else{ name = allname.substring(0,j-1); } } public boolean accept(File dir, String allname) { boolean y = true; try{ allname = allname.toLowerCase(); y = allname.startsWith(name)&allname.endsWith(type); }catch(NullPointerException e){} return y; } } public void searchFile(String path,String allname){ File f = new File(path); ListFilter2 lf = new ListFilter2(allname); String[] files = f.list(lf); try{ for(int i=0;i<files.length;i++){ System.out.println(files[i]); } }catch(NullPointerException e){} File[] newFile = f.listFiles(); try{ for(int j=0;j<newFile.length;j++){ searchFile(newFile[j].getAbsolutePath(),allname);//在这里我使用了递归的方法 } }catch(NullPointerException e){} } }
文件的建立/检查与删除
<% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.io.* " %> < html > < head > < title > 文件的建立、检查与删除 </ title > </ head > < body > <% String path = request.getRealPath( "" ); // out.println(path); File f = new File(path, " File.txt " ); // out.println(f); // out.println(f.exists()); if (f.exists()) { // 检查File.txt是否存在 f.delete(); // 删除File.txt文件 out .println(path + " //File.txt 存在,已删除。 " ); } else { f.createNewFile(); // 在当前目录下建立一个名为File.txt的文件 out .println(path + " //File.txt 不存在,已建立。 " ); // 输出目前所在的目录路径 } %>目录的建立/检查与删除
<% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.io.* " %> < html > < head > < title > 目录的建立 / 检查与删除 </ title > </ head > < body > <% String path = request.getRealPath( "" ); path = path + " //Sub " ; // 将要建立的目录路径 File d = new File(path); // 建立代表Sub目录的File对象,并得到它的一个引用 if (d.exists()) { // 检查Sub目录是否存在 d.delete(); out .println( " Sub目录存在,已删除 " ); } else { d.mkdir(); // 建立Sub目录 out .println( " Sub目录不存在,已建立 " ); } %> </ body > </ html >如何在JSP中处理虚拟目录
<% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.io.* " %> < html > < head > < title > JSP中如何处理虚拟目录 </ title > </ head > < body > 取得虚拟目录对应的磁盘路径 < br > Web站点主目录的位置为 < font color = #ff0000 ><%= request.getRealPath( " / " ) %></ font >< br > JSP网页所在的目录位置 < font color = #ff0000 ><%= request.getRealPath( " ./ " ) %></ font >< br > JSP网页所在目录上一层目录的位置 < font color = #ff0000 ><%= request.getRealPath( " ../ " ) %></ font >< br > </ body > </ html >文件属性的取得
<% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.util.Date,java.io.* " %> < html > < head > < title > 文件属性的取得 </ title > </ head > < body > <% String path = request.getRealPath( " / " ); File f = new File(path, " ReadData.txt " ); if (f.exists()) { %> <%= f.getName() %> 的属性如下: < br >< br > 文件长度为: <%= f.length() %> <%= f.isFile() ? " 是文件 " : " 不是文件 " %>< br > <%= f.isDirectory() ? " 是目录 " : " 不是目录 " %>< br > <%= f.canRead() ? " 可读取 " : " 不可读取 " %>< br > <%= f.canWrite() ? " 可写入 " : " 不可写入 " %>< br > <%= f.isHidden() ? " 是隐藏文件 " : " 不是隐藏文件 " %>< br > 文件的最后修改日期为: <%= new Date(f.lastModified()) %>< br > <% } else { f.createNewFile(); // 在当前目录下建立一个名为ReaData.txt的文件 %> <%= f.getName() %> 的属性如下: < br >< br > 文件长度为: <%= f.length() %> <%= f.isFile() ? " 是文件 " : " 不是文件 " %>< br > <%= f.isDirectory() ? " 是目录 " : " 不是目录 " %>< br > <%= f.canRead() ? " 可读取 " : " 不可读取 " %>< br > <%= f.canWrite() ? " 可写入 " : " 不可写入 " %>< br > <%= f.isHidden() ? " 是隐藏文件 " : " 不是隐藏文件 " %>< br > 文件的最后修改日期为: <%= new Date(f.lastModified()) %>< br > <% } %> </ body > </ html >取出目录中文件的方法
<% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.io.* " %> < html > < head > < title > 取出目录中文件的方法 -- 列出目录中的文件 </ title > </ head > < body > <% String path = request.getRealPath( " / " ); File d = new File(path); // 建立当前目录中文件的File对象 File list[] = d.listFiles(); // 取得代表目录中所有文件的File对象数组 out .println( " <font color=#ff0000> " + path + " 目录下的文件:</font><br> " ); for ( int i = 0 ;i < list.length;i ++ ) { if (list[i] .isFile()) { out .println(list[i]. .getName() + " <br> " ); } } out .println( " <br><font color=#ff0000> " + path + " 目录下的目录:</font><br> " ); for ( int i = 0 ;i < list.length;i ++ ) { if (list[i]. isDirectory()) { out .println(list[i]. .getName() + " <br> " ); } } %> </ body > </ html >判断是否为空白文件
<% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.io.* " %> < html > < head > < title > 判断是否为空白文件 </ title > </ head > < body > <% String path = request.getRealPath( " / " ); out .println(path); FileReader fr = new FileReader(path + " //AtEnd.txt " ); // 建立FileReader对象,并实例化为fr // 对FileReader类生成的对象使用read()方法,可以从字符流中读取下一个字符。 if (fr.read() ==- 1 ) // 判断是否已读到文件的结尾 { out .print( " AtEnd.txt文件中没有数据<br> " ); } else { out .println( " AtEnd.txt文件中有数据 " ); } fr.close(); %> </ body > </ html > < B > 读取所有的文件数据 </ B > < ccid_nobr > < table width = " 400 " border = " 1 " cellspacing = " 0 " cellpadding = " 2 " bordercolorlight = " black " bordercolordark = " #FFFFFF " align = " center " > < tr > < td bgcolor = " e6e6e6 " class = " code " style = " font-size:9pt " > < pre >< ccid_code > <% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.io.*,java.lang.* " %> < html > < head > < title > 读取所有的文件数据 </ title > </ head > < body > <% 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(); %> </ body > </ html >一行一行读取数据
<% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.io.* " %> < html > < head > < title > 文件读取 </ title > </ head > < body > <% String path = request.getRealPath( "" ); // 取得当前目录的路径 FileReader fr = new FileReader(path + " //file//inc//t.txt " ); // 建立FileReader对象,并实例化为fr BufferedReader br = new BufferedReader(fr); // 建立BufferedReader对象,并实例化为br String Line = br.readLine(); // 从文件读取一行字符串 // 判断读取到的字符串是否不为空 while (Line != null ) { out .println(Line + " <br> " ); // 输出从文件中读取的数据 Line = br.readLine(); // 从文件中继续读取一行数据 } br.close(); // 关闭BufferedReader对象 fr.close(); // 关闭文件 %> </ body > </ html >略过文件中的字符不读取
<% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.io.* " %> < html > < head > < title > 略过字节不读取 </ title > </ head > < body > <% String path = request.getRealPath( " . " ); FileReader fr = new FileReader(path + " //ReadData.txt " ); fr.skip( 2 ); // 跳过2个字节 int c = fr.read(); // 读取一个字节 while (c !=- 1 ) { out .print(( char )c); c = fr.read(); } fr.close(); %> </ body > </ html >将数据写入文件
<% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.io.* " %> < html > < head > < title > 将数据写入文件 </ title > </ head > < body > <% String path = request.getRealPath( " . " ); FileWriter fw = new FileWriter(path + " //WriteData.txt " ); // 建立FileWriter对象,并实例化fw // 将字符串写入文件 fw.write( " 大家好! " ); fw.write( " 本书是《JSP编程技巧》 " ); fw.write( " 请多多指教! " ); fw.write( " email:stride@sina.com " ); fw.close(); FileReader fr = new FileReader(path + " //WriteData.txt " ); BufferedReader br = new BufferedReader(fr); // 建立BufferedReader对象,并实例化为br String Line = br.readLine(); // 读取一行数据 out .println(Line + " <br> " ); br.close(); // 关闭BufferedReader对象 fr.close(); %> </ body > </ html >将写入文件的数据分行
<% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.io.* " %> < html > < head > < title > 将写入文件的数据分行 </ title > </ head > < body > <% String path = request.getRealPath( " . " ); FileWriter fw = new FileWriter(path + " //WriteData.txt " ); BufferedWriter bw = new BufferedWriter(fw); bw.write( " 大家好! " ); bw.write( " 本书是《JSP编程技巧》。 " ); bw.newLine(); // 断行 bw.write( " 请多多指教! " ); bw.newLine(); // 断行 bw.write( " email: stride@sina.com " ); bw.flush(); // 将数据更新至文件 fw.close(); // 关闭文件流 out .println( " 写入文件内容为:<br> " ); FileReader fr = new FileReader(path + " //WriteData.txt " ); BufferedReader br = new BufferedReader(fr); String Line = br.readLine(); // 读取一行数据 while (Line != null ) { out .println(Line + " <br> " ); Line = br.readLine(); } fr.close(); %> </ body > </ html >如何将数据追加写入到文件
<% @ page contentType = " text/html;charset=gb2312 " %> <% @ page import = " java.io.* " %> < html > < head > < title > 将写入文件的数据分行 </ title > </ head > < body > <% 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(); // 关闭文件流 out .println( " 写入文件内容为:<br> " ); FileReader fr = new FileReader(path + " //WriteData.txt " ); BufferedReader br = new BufferedReader(fr); // 读取文件的BufferedRead对象 String Line = br.readLine(); while (Line != null ) { out .println(Line + " <br> " ); Line = br.readLine(); } fr.close(); // 关闭文件 %> </ body > </ html >