您的位置:首页 > 编程语言 > Java开发

用JAVA实现的类FileOperate,包括文件建立,查询,删除等。。。(继续更新中)

2009-11-30 23:06 459 查看
用JAVA实现的类FileOperate,包括文件建立,查询,删除等。。

 

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> 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java path string file class jsp
相关文章推荐