用JAVA实现的类FileOperate,包括文件建立,查询,删除等。。。

    技术2022-05-20  44

    用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 >

    最新回复(0)