`
lkjxshi
  • 浏览: 29181 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA中FILE类各种列子讲解

阅读更多
1.创建文件夹  
File myFolderPath = new File(%%1);   
try {   
if (!myFolderPath.exists()) {   
     myFolderPath.mkdir();   
}   
}   
catch (Exception e) {   
System.out.println("新建目录操作出错");   
e.printStackTrace();   
}    
  

2.创建文件  
File myFilePath = new File(%%1);   
try {   
if (!myFilePath.exists()) {   
myFilePath.createNewFile();   
}   
FileWriter resultFile = new FileWriter(myFilePath);   
PrintWriter myFile = new PrintWriter(resultFile);   
myFile.println(%%2);   
resultFile.close();   
}   
catch (Exception e) {   
System.out.println("新建文件操作出错");   
e.printStackTrace();   
}    

 
3.删除文件  
File myDelFile = new File(%%1);   
try {   
myDelFile.delete();   
}   
catch (Exception e) {   
System.out.println("删除文件操作出错");   
e.printStackTrace();   
}    

 
4.删除文件夹  
File delFolderPath = new File(%%1);   
try {   
delFolderPath.delete(); //删除空文件夹   
}   
catch (Exception e) {   
System.out.println("删除文件夹操作出错");   
e.printStackTrace();   
} 
  
 
5.删除一个文件下夹所有的文件夹  
File delfile=new File(%%1);   
File[] files=delfile.listFiles();   
for(int i=0;i<files.length;i++){   
if(files[i].isDirectory()){   
files[i].delete();   
    }   
}   

 
6.清空文件夹  
File delfilefolder=new File(%%1);   
try {   
if (!delfilefolder.exists()) {   
delfilefolder.delete();   
}   
delfilefolder.mkdir();   
}   
catch (Exception e) {   
System.out.println("清空目录操作出错");   
e.printStackTrace();   
}  
 
 
7.读取文件  
// 逐行读取数据  
FileReader fr = new FileReader(%%1);   
BufferedReader br = new BufferedReader(fr);   
String %%2 = br.readLine();   
while (%%2 != null) {   
%%3  
%%2 = br.readLine();   
}   
br.close();   
fr.close();  
 
 
8.写入文件  
// 将数据写入文件  
FileWriter fw = new FileWriter(%%1);   
fw.write(%%2);   
fw.close();
   
 
9.写入随机文件  
try {   
RandomAcessFile logFile=new RandomAcessFile(%%1,"rw");   
long lg=logFile.length();   
logFile.seek(%%2);   
logFile.writeByte(%%3);   
}catch(IOException ioe){   
System.out.println("无法写入文件:"+ioe.getMessage());   
}
   
 
10.读取文件属性  
// 文件属性的取得   
File af = new File(%%1);   
if (af.exists()) {   
System.out.println(f.getName() + "的属性如下: 文件长度为:" + f.length());   
System.out.println(f.isFile() ? "是文件" : "不是文件");   
System.out.println(f.isDirectory() ? "是目录" : "不是目录");   
System.out.println(f.canRead() ? "可读取" : "不");   
System.out.println(f.canWrite() ? "是隐藏文件" : "");   
System.out.println("文件夹的最后修改日期为:" + new Date(f.lastModified()));   
} else {   
System.out.println(f.getName() + "的属性如下:");   
System.out.println(f.isFile() ? "是文件" : "不是文件");   
System.out.println(f.isDirectory() ? "是目录" : "不是目录");   
System.out.println(f.canRead() ? "可读取" : "不");   
System.out.println(f.canWrite() ? "是隐藏文件" : "");   
System.out.println("文件的最后修改日期为:" + new Date(f.lastModified()));   
}   
if(f.canRead()){   
%%2  
}   
if(f.canWrite()){   
%%3  
} 
  
 
11.写入属性  
File filereadonly=new File(%%1);   
try {   
boolean b=filereadonly.setReadOnly();   
}   
catch (Exception e) {   
System.out.println("拒绝写访问:"+e.printStackTrace());   
}  
 
 
12.枚举一个文件夹中的所有文件夹   
 
//import java.io.*;   
//import java.util.*;   
ArrayList<String> folderList = new ArrayList<String>();   
folderList.add(%%1);   
for (int j = 0; j < folderList.size(); j++) {   
File file = new File(folderList.get(j));   
File[] files = file.listFiles();   
ArrayList<File> fileList = new ArrayList<File>();   
for (int i = 0; i < files.length; i++) {   
if (files[i].isDirectory()) {   
folderList.add(files[i].getPath());   
} else {   
fileList.add(files[i]);   
}   
}   
for (File f : fileList) {   
%%2=f.toString();   
%%3  
}   
}    
  

13.复制文件夹   
//import java.io.*;   
//import java.util.*;   
ArrayList<String>folderList=new ArrayList<String>();   
folderList.add(%%1);   
ArrayList<String>folderList2=new ArrayList<String>();   
folderList2.add(%%2);   
for(int j=0;j<folderList.length;j++){   
    (new File(folderList2[j])).mkdirs(); //如果文件夹不存在 则建立新文件夹   
    File folders=new File(folderList[j]);   
    String[] file=folders.list();   
    File temp=null;   
    try {   
      for (int i = 0; i < file.length; i++) {   
        if(folderList[j].endsWith(File.separator)){   
          temp=new File(folderList[j]+"/"+file[i]);   
        }   
        else{   
          temp=new File(folderList[j]+"/"+File.separator+file[i]);   
        }   
          FileInputStream input = new FileInputStream(temp);   
        if(temp.isFile()){   
          FileInputStream input = new FileInputStream(temp);   
          FileOutputStream output = new FileOutputStream(folderList2[j] + "/" +   
              (temp.getName()).toString());   
          byte[] b = new byte[5120];   
          int len;   
          while ( (len = input.read(b)) != -1) {   
            output.write(b, 0, len);   
          }   
          output.flush();   
          output.close();   
          input.close();   
        }   
        if(temp.isDirectory()){//如果是子文件夹   
          folderList.add(folderList[j]+"/"+file[i]);   
          folderList2.add(folderList2[j]+"/"+file[i]);   
        }   
      }   
    }   
    catch (Exception e) {   
      System.out.println("复制整个文件夹内容操作出错");   
      e.printStackTrace();   
    }   
}    

 
14.复制一个文件夹下所有的文件夹到另一个文件夹下  
File copyfolders=new File(%%1);   
File[] copyfoldersList=copyfolders.listFiles();   
for(int k=0;k<copyfoldersList.length;k++){   
if(copyfoldersList[k].isDirectory()){   
ArrayList<String>folderList=new ArrayList<String>();   
folderList.add(copyfoldersList[k].getPath());   
ArrayList<String>folderList2=new ArrayList<String>();   
folderList2.add(%%2+"/"+copyfoldersList[k].getName());   
for(int j=0;j<folderList.length;j++){   
    (new File(folderList2[j])).mkdirs(); //如果文件夹不存在 则建立新文件夹   
    File folders=new File(folderList[j]);   
    String[] file=folders.list();   
    File temp=null;   
    try {   
      for (int i = 0; i < file.length; i++) {   
        if(folderList[j].endsWith(File.separator)){   
          temp=new File(folderList[j]+"/"+file[i]);   
        }   
        else{   
          temp=new File(folderList[j]+"/"+File.separator+file[i]);   
        }   
          FileInputStream input = new FileInputStream(temp);   
        if(temp.isFile()){   
          FileInputStream input = new FileInputStream(temp);   
          FileOutputStream output = new FileOutputStream(folderList2[j] + "/" +   
              (temp.getName()).toString());   
          byte[] b = new byte[5120];   
          int len;   
          while ( (len = input.read(b)) != -1) {   
            output.write(b, 0, len);   
          }   
          output.flush();   
          output.close();   
          input.close();   
        }   
        if(temp.isDirectory()){//如果是子文件夹   
          folderList.add(folderList[j]+"/"+file[i]);   
          folderList2.add(folderList2[j]+"/"+file[i]);   
        }   
      }   
    }   
    catch (Exception e) {   
      System.out.println("复制整个文件夹内容操作出错");   
      e.printStackTrace();   
    }   
}   
}   
}    

 
15.移动文件夹  
ArrayList<String>folderList=new ArrayList<String>();   
folderList.add(%%1);   
ArrayList<String>folderList2=new ArrayList<String>();   
folderList2.add(%%2);   
for(int j=0;j<folderList.length;j++){   
    (new File(folderList2[j])).mkdirs(); //如果文件夹不存在 则建立新文件夹   
    File folders=new File(folderList[j]);   
    String[] file=folders.list();   
    File temp=null;   
    try {   
      for (int i = 0; i < file.length; i++) {   
        if(folderList[j].endsWith(File.separator)){   
          temp=new File(folderList[j]+"/"+file[i]);   
        }   
        else{   
          temp=new File(folderList[j]+"/"+File.separator+file[i]);   
        }   
          FileInputStream input = new FileInputStream(temp);   
        if(temp.isFile()){   
          FileInputStream input = new FileInputStream(temp);   
          FileOutputStream output = new FileOutputStream(folderList2[j] + "/" +   
              (temp.getName()).toString());   
          byte[] b = new byte[5120];   
          int len;   
          while ( (len = input.read(b)) != -1) {   
            output.write(b, 0, len);   
          }   
          output.flush();   
          output.close();   
          input.close();   
        }   
        if(temp.isDirectory()){//如果是子文件夹   
          folderList.add(folderList[j]+"/"+file[i]);   
          folderList2.add(folderList2[j]+"/"+file[i]);   
        }   
      }   
    }   
    catch (Exception e) {   
      System.out.println("复制整个文件夹内容操作出错");   
      e.printStackTrace();   
    }   
}   
File movefile=new File(%%1);   
File[] movefiles=movefile.listFiles();   
for(int i=0;i<files.length;i++){   
if(files[i].isDirectory()){   
files[i].delete();   
    }   
}   
movefile.delete();   

 
16.移动一个文件夹下所有的文件夹到另一个目录下  
File movefolders=new File(%%1);   
File[] movefoldersList=movefolders.listFiles();   
for(int k=0;k<movefoldersList.length;k++){   
if(movefoldersList[k].isDirectory()){   
ArrayList<String>folderList=new ArrayList<String>();   
folderList.add(movefoldersList[k].getPath());   
ArrayList<String>folderList2=new ArrayList<String>();   
folderList2.add(%%2+"/"+movefoldersList[k].getName());   
for(int j=0;j<folderList.length;j++){   
    (new File(folderList2[j])).mkdirs(); //如果文件夹不存在 则建立新文件夹   
    File folders=new File(folderList[j]);   
    String[] file=folders.list();   
    File temp=null;   
    try {   
      for (int i = 0; i < file.length; i++) {   
        if(folderList[j].endsWith(File.separator)){   
          temp=new File(folderList[j]+"/"+file[i]);   
        }   
        else{   
          temp=new File(folderList[j]+"/"+File.separator+file[i]);   
        }   
          FileInputStream input = new FileInputStream(temp);   
        if(temp.isFile()){   
          FileInputStream input = new FileInputStream(temp);   
          FileOutputStream output = new FileOutputStream(folderList2[j] + "/" +   
              (temp.getName()).toString());   
          byte[] b = new byte[5120];   
          int len;   
          while ( (len = input.read(b)) != -1) {   
            output.write(b, 0, len);   
          }   
          output.flush();   
          output.close();   
          input.close();   
temp.delete();   
        }   
        if(temp.isDirectory()){//如果是子文件夹   
          folderList.add(folderList[j]+"/"+file[i]);   
          folderList2.add(folderList2[j]+"/"+file[i]);   
        }   
      }   
    }   
    catch (Exception e) {   
      System.out.println("复制整个文件夹内容操作出错");   
      e.printStackTrace();   
    }   
}   
movefoldersList[k].delete();   
}   
}   

 
17.以一个文件夹的框架在另一个目录创建文件夹和空文件  
ArrayList<String>folderList=new ArrayList<String>();   
folderList.add(%%1);   
ArrayList<String>folderList2=new ArrayList<String>();   
folderList2.add(%%2);   
for(int j=0;j<folderList.length;j++){   
    (new File(folderList2[j])).mkdirs(); //如果文件夹不存在 则建立新文件夹   
    File folders=new File(folderList[j]);   
    String[] file=folders.list();   
    File temp=null;   
    try {   
      for (int i = 0; i < file.length; i++) {   
        if(folderList[j].endsWith(File.separator)){   
          temp=new File(folderList[j]+"/"+file[i]);   
        }   
        else{   
          temp=new File(folderList[j]+"/"+File.separator+file[i]);   
        }   
          FileInputStream input = new FileInputStream(temp);   
        if(temp.isFile()){   
if (!temp.exists()) {   
temp.createNewFile();   
}   
        }   
        if(temp.isDirectory()){//如果是子文件夹   
          folderList.add(folderList[j]+"/"+file[i]);   
          folderList2.add(folderList2[j]+"/"+file[i]);   
        }   
      }   
    }   
    catch (Exception e) {   
      System.out.println("复制整个文件夹内容操作出错");   
      e.printStackTrace();   
    }   
}    

 
18.复制文件  
   
  int bytesum = 0;   
      int byteread = 0;   
      File oldfile = new File(%%1);   
    try {   
      if (oldfile.exists()) { //文件存在时   
        InputStream inStream = new FileInputStream(oldfile); //读入原文件   
        FileOutputStream fs = new FileOutputStream(new File(%%2,oldfile.getName()));   
        byte[] buffer = new byte[5120];   
        int length;   
        while ( (byteread = inStream.read(buffer)) != -1) {   
          bytesum += byteread; //字节数 文件大小   
          System.out.println(bytesum);   
          fs.write(buffer, 0, byteread);   
        }   
        inStream.close();   
      }   
    }   
    catch (Exception e) {   
      System.out.println("复制单个文件操作出错");   
      e.printStackTrace();   
    }    
  

19.复制一个文件夹下所有的文件到另一个目录  
File copyfiles=new File(%%1);   
File[] files=copyfiles.listFiles();   
for(int i=0;i<files.length;i++){   
if(!files[i].isDirectory()){   
      int bytesum = 0;   
      int byteread = 0;   
    try {   
        InputStream inStream = new FileInputStream(files[i]); //读入原文件   
        FileOutputStream fs = new FileOutputStream(new File(%%2,files[i].getName());   
        byte[] buffer = new byte[5120];   
        int length;   
        while ( (byteread = inStream.read(buffer)) != -1) {   
          bytesum += byteread; //字节数 文件大小   
          System.out.println(bytesum);   
          fs.write(buffer, 0, byteread);   
        }   
        inStream.close();   
    } catch (Exception e) {   
      System.out.println("复制单个文件操作出错");   
      e.printStackTrace();   
    }   
}   
}    

 
20.提取扩展名  
String %%2=(new File(%%1)).getName().split(".")[1];    

 
21.提取文件名  
String %%2=(new File(%%1)).getName().split("//")[1];    
  

22.提取文件路径  
String %%2=(new File(%%1)).getPath(); 
  
 
23.替换扩展名  
File replaceExt=new File(%%1);   
replaceExt.renameTo(replaceExt.getName().split(".")[0]+"."+%%2);    

 
24.追加路径  
%%3=%%2+"/"+%%1    

 
25.移动文件  
    
 int bytesum = 0;   
      int byteread = 0;   
      File oldfile = new File(%%1);   
    try {   
      if (oldfile.exists()) { //文件存在时   
        InputStream inStream = new FileInputStream(oldfile); //读入原文件   
        FileOutputStream fs = new FileOutputStream(new File(%%2,oldfile.getName()));   
        byte[] buffer = new byte[5120];   
        int length;   
        while ( (byteread = inStream.read(buffer)) != -1) {   
          bytesum += byteread; //字节数 文件大小   
          //System.out.println(bytesum);   
          fs.write(buffer, 0, byteread);   
        }   
        inStream.close();   
oldfile.delete();   
      }   
    }   
    catch (Exception e) {   
      System.out.println("复制单个文件操作出错");   
      e.printStackTrace();   
    }    

 
26.移动一个文件夹下所有文件到另一个目录  
File movefile=new File(%%1);   
File[] movefiles=movefile.listFiles();   
for(int i=0;i<movefiles.length;i++){   
if(movefiles[i].isFile()){   
      int bytesum = 0;   
      int byteread = 0;   
      File oldfile = new File(movefiles[i]);   
    try {   
      if (oldfile.exists()) { //文件存在时   
        InputStream inStream = new FileInputStream(oldfile); //读入原文件   
        FileOutputStream fs = new FileOutputStream(new File(%%2,oldfile.getName()));   
        byte[] buffer = new byte[5120];   
        int length;   
        while ( (byteread = inStream.read(buffer)) != -1) {   
          bytesum += byteread; //字节数 文件大小   
          //System.out.println(bytesum);   
          fs.write(buffer, 0, byteread);   
        }   
        inStream.close();   
oldfile.delete();   
      }   
    }   
    catch (Exception e) {   
      System.out.println("复制单个文件操作出错");   
      e.printStackTrace();   
    }   
}   
}    

 
27.指定目录下搜索文件  
  
 private void doSearch(String filter, String path) {   
        File file = new File(path);   
        if(file.exists()) {   
            if(file.isDirectory()) {   
                File[] fileArray = file.listFiles();   
                for(File f:fileArray) {   
                    if(f.isDirectory()) {   
                        doSearch(filter,f.getPath());   
                    } else {   
                        if(f.getName().indexOf(filter) >= 0) {   
                            countFiles++;   
                            result.append(f.getPath() + "\r\n");   
                        }   
                    }   
                    statusShow1.setText(f.getPath());   
                }   
                statusShow2.setText("The numbers of files had been found:" + countFiles);   
            } else {   
                System.out.println("Couldn't open the path!");   
            }   
        } else {   
            System.out.println("The path had been apointed was not Exist!");   
        }   
    }    
  

28.打开对话框  
JFileChooser Jfc = new JFileChooser();           
 //建立选择档案对话方块盒 Jfc   
%%1 = Jfc.getSelectedFile();    

 
29.文件分割  
//import java.io.*   
try {   
File f=new File(%%1);   
FileInputStream fileInputStream = new FileInputStream(f);   
byte[] buffer = new byte[fileInputStream.available()];   
FileInputStream.read(buffer);   
fileInputStream.close();   
String strFileName = f.getName();   
FileOutputStream fileOutputStream = new FileOutputStream(new File(%%2+"\\"+ strFileName + "1"));   
fileOutputStream.write(buffer,0,buffer.length/2);   
fileOutputStream.close();   
fileOutputStream = new FileOutputStream(new File(%%2+"\\"+ strFileName + "2"));   
fileOutputStream.write(buffer, buffer.length/2, buffer.length-buffer.length/2);   
fileOutputStream.close();   
} catch (ArrayIndexOutOfBoundsException e) {   
System.out.print("using FileStreamDemo src des");   
e.printStackTrace();   
}   
catch(IOException e){   
e.printStackTrace();   
}    

 
30.文件合并  
//import java.io.*   
String strFileName = %%1.substring(%%1.LastIndexOf("\\") + 1);   
try {   
FileInputStream fileInputStream1 = new FileInputStream(new File(%%2 + strFileName + "1"));   
FileInputStream fileInputStream2 = new FileInputStream(new File(%%2 + strFileName + "2"));   
byte[] buffer = new byte[fileInputStream1.available()+fileInputStream2.available()];   
FileInputStream.read(buffer, 0, fileInputStream1.available());   
FileInputStream2.read(buffer, fileInputStream1.available(), fileInputStream2.available());   
fileInputStream.close();   
fileInputStream2.close();   
FileOutputStream fileOutputStream = new FileOutputStream(new File(%%2+"\\"+ strFileName));   
fileOutputStream.write(buffer,0,buffer.length);   
fileOutputStream.close();   
catch(IOException e){   
e.printStackTrace();   
}    

 
31.文件简单加密  
//读文件   
FileStream fsr = new FileStream(%%1, FileMode.Open, FileAccess.Read);   
byte[] btArr = new byte[fsr.Length];   
fsr.Read(btArr, 0, btArr.Length);   
fsr.Close();   
for (int i = 0; i < btArr.Length; i++) //加密   
{   
    int ibt = btArr[i];   
    ibt += 100;   
    ibt %= 256;   
    btArr[i] = Convert.ToByte(ibt);   
}   
//写文件   
string strFileName = Path.GetExtension(%%1);   
FileStream fsw = new FileStream(%%2+"/" + "enc_" + strFileName, FileMode.Create, FileAccess.Write);   
fsw.Write(btArr, 0, btArr.Length);   
fsw.Close(); 
  
 
32.文件简单解密  
FileStream fsr = new FileStream(%%1, FileMode.Open, FileAccess.Read);   
byte[] btArr = new byte[fsr.Length];   
fsr.Read(btArr, 0, btArr.Length);   
fsr.Close();   
for (int i = 0; i < btArr.Length; i++) //解密   
{   
    int ibt = btArr[i];   
    ibt -= 100;   
    ibt += 256;   
    ibt %= 256;   
    btArr[i] = Convert.ToByte(ibt);   
}   
//写文件   
string strFileName = Path.GetExtension(%%1);   
FileStream fsw = new FileStream(%%2 +"/" + strFileName, FileMode.Create, FileAccess.Write);   
fsw.Write(btArr, 0, btArr.Length);   
fsw.Close();    

 
33.文件简单解密  
//import java.io.*   
try {   
File f=new File(%%1);   
String strFileName = f.getName();   
FileInputStream fileInputStream = new FileInputStream(%%2+"\\enc_"+strFilename);   
byte[] buffer = new byte[fileInputStream.available()];   
FileInputStream.read(buffer);   
fileInputStream.close();   
for(int i=0;i<buffer.length;i++)   
{   
int ibt=buffer[i];   
ibt-=100;   
ibt+=256;   
ibt%=256;   
buffer[i]=(byte)ibt;   
}   
FileOutputStream fileOutputStream = new FileOutputStream(f);   
fileOutputStream.write(buffer,0,buffer.length);   
fileOutputStream.close();   
}   
catch(ArrayIndexOutOfBoundException e){   
e.printStackTrace();   
}   
catch(IOException e){   
e.printStackTrace();   
}    

 
34.读取ini文件属性  
//import java.io.*   
//import java.util.*;   
//import java.util.regex.*;    
//private HashMap configMap=null;   
private Map configMap=null;   
if(configMap==null) {   
String strLine=null;   
String currentNode=null;   
String previousNode=null;   
Vector vec=new Vector();   
int row=0;   
FileReader fileReader = new FileReader(%%1);   
BufferedReader bufferedReader=new BufferedReader(fileReader);   
try {   
while((strLine=bufferedReader.readLine())!=null) {   
String oneLine=strLine.trim();   
if(oneLine.length()>=1) {   
Pattern p=Pattern.compile("\\[\\s*.*\\s*\\]");   
int nodelen=oneLine.split("[;]").length;   
String[] strArray1=new String[4];   
if(nodelen==1) {   
oneLine=oneLine.split("[;]")[0].trim();   
}   
else if(nodelen==2) {   
strArray1[3]=oneLine.split("[;]")[1].trim();   
oneLine=oneLine.split("[;]")[0].trim();   
}   
Matcher m=p.matche(oneLine);   
if(m.matches()) {   
strArray1[0]="@Node";   
strArray1[1]=oneLine;   
strArray1[2]="";   
} else {   
int keylen=oneLine.split("=").length;   
if(keylen==1) {   
strArray1[0]="@Key";   
strArray1[1]=oneLine.split("=")[0];   
strArray1[2]="";   
} else if(kenlen==2) {   
strArray1[0]="@Key";   
strArray1[1]=oneLine.split("=")[0];   
strArray1[2]=oneLine.split("=")[1];   
} else {   
strArray1[0]="@ElementError";   
strArray1[1]="";   
strArray1[2]="";   
strArray1[3]="";   
}   
}   
if(strArray1[0].equals("@Node")) {   
previousNode=currentNode;   
currentNode=strArray1[1];   
if(row>0) {   
configMap.put(previousNode,vec.elementAt(0));   
//"size:"+configMap.size()   
vec.clear();   
row=0;   
}   
} else if(strArray1[0].equals("@Key") && row==0) {   
Properties ht=new Properties();   
ht.setProperty(strArray1[1],strArray1[2]);   
vec.add(0,ht);   
row++;   
}   
} else if(strArray1[0].equals("@Key") && row>0) {   
Properties ht2=new Properties();   
ht2.put(strArray1[1],strArray1[2]);   
vec.clear();   
vec.add(0,ht2);   
row++;   
}   
}   
}   
configMap.put(currentNode,vec.elementAt(0));   
} catch (FileNotFoundException e) {   
configMap=null;   
e.printStackTrace();   
} catch (IOException e) {   
configMap=null;   
e.printStackTrace();   
} finally {   
vec.clear();   
bufferedReader.close();   
fileReader.close();   
}   
}   
String nodeKey="["+%%2+"]";   
Properties ht=(Properties)configMap.get(nodeKey);   
//"ht:"+ht.toString()   
//"key:"+%%3   
CString %%4=null;   
if(ht.containsKey(%%3)) {   
try {   
%%4=ht.getProperty(%%3);   
} catch (NullPointException e) {   
e.printStackTrace();   
}   
}    

 
35.合并一个文件下所有的文件  
File combinefiles=new File(%%1);   
File[] files=combinefiles.listFiles();   
FileOutputStream fs;   
try {   
fs=new FileOutputStream(new File(%%2));   
}   
catch(IOException e){   
e.printStackTrace();   
}   
for(int i=0;i<files.length;i++){   
if(files[i].isFile()){   
int bytesum=0;   
int byteread=0;   
try {    
FileInputStream inStream=new FileInputStream(files[i]);   
byte[] buffer = new byte[5120];   
int length;   
while((byteread=inStream.read(buffer))!=-1){   
bytesum+=byteread;   
fs.write(buffer,0,byteread);   
}   
inStream.close();   
}   
catch(Exception e){   
//复制文件出错   
e.printStackTrace();   
}   
}   
}   
try {   
fs.close();   
}   
catch(IOException e){   
{   
e.printStackTrace();   
}    
  

36.写入ini文件属性  
//import java.io.*   
//import java.util.*;   
//import java.util.regex.*;    
//private HashMap configMap=null;   
private Map configMap=null;   
if(configMap==null) {   
String strLine=null;   
String currentNode=null;   
String previousNode=null;   
Vector vec=new Vector();   
int row=0;   
FileReader fileReader = new FileReader(%%1);   
BufferedReader bufferedReader=new BufferedReader(fileReader);   
try {   
while((strLine=bufferedReader.readLine())!=null) {   
String oneLine=strLine.trim();   
if(oneLine.length()>=1) {   
Pattern p=Pattern.compile("\\[\\s*.*\\s*\\]");   
int nodelen=oneLine.split("[;]").length;   
String[] strArray1=new String[4];   
if(nodelen==1) {   
oneLine=oneLine.split("[;]")[0].trim();   
}   
else if(nodelen==2) {   
strArray1[3]=oneLine.split("[;]")[1].trim();   
oneLine=oneLine.split("[;]")[0].trim();   
}   
Matcher m=p.matche(oneLine);   
if(m.matches()) {   
strArray1[0]="@Node";   
strArray1[1]=oneLine;   
strArray1[2]="";   
} else {   
int keylen=oneLine.split("=").length;   
if(keylen==1) {   
strArray1[0]="@Key";   
strArray1[1]=oneLine.split("=")[0];   
strArray1[2]="";   
} else if(kenlen==2) {   
strArray1[0]="@Key";   
strArray1[1]=oneLine.split("=")[0];   
strArray1[2]=oneLine.split("=")[1];   
} else {   
strArray1[0]="@ElementError";   
strArray1[1]="";   
strArray1[2]="";   
strArray1[3]="";   
}   
}   
if(strArray1[0].equals("@Node")) {   
previousNode=currentNode;   
currentNode=strArray1[1];   
if(row>0) {   
configMap.put(previousNode,vec.elementAt(0));   
//"size:"+configMap.size()   
vec.clear();   
row=0;   
}   
} else if(strArray1[0].equals("@Key") && row==0) {   
Properties ht=new Properties();   
ht.setProperty(strArray1[1],strArray1[2]);   
vec.add(0,ht);   
row++;   
}   
} else if(strArray1[0].equals("@Key") && row>0) {   
Properties ht2=new Properties();   
ht2.put(strArray1[1],strArray1[2]);   
vec.clear();   
vec.add(0,ht2);   
row++;   
}   
}   
}   
configMap.put(currentNode,vec.elementAt(0));   
} catch (FileNotFoundException e) {   
configMap=null;   
e.printStackTrace();   
} catch (IOException e) {   
configMap=null;   
e.printStackTrace();   
} finally {   
vec.clear();   
bufferedReader.close();   
fileReader.close();   
}   
}   
String nodeKey="["+%%2+"]";   
Properties ht=null;   
if(configMap.containsKey(nodeKey)) {   
ht=(Properties)configMap.get(nodeKey);   
} else {   
ht=(Properties)configMap.get(nodeKey,%%3);   
}   
try {   
ht.setProperty(%%3,%%4);   
} catch (NullPointException e) {    
e.printStackTrace();   
}   
FileWriter fw = new FileWriter(%%1);   
BufferedWriter bw=new BufferedWriter(fw);   
Set keys=configMap.keySet();   
Iterator ite=keys.iterator();   
while(ite.hasNext()) {   
String oneKey=(String)ite.next();   
bw.WriteLine(oneKey);   
ht=(Properties)configMap.get(oneKey);   
ht.list(new PrintWriter(bw,true));   
}    

 
37.获得当前路径  
this.getClass().getResource("/").getPath()    

 
38.读取XML数据库  
//import java.io.*;   
//import javax.xml.parsers.*;   
//import org.xml.sax.*;   
//import org.w3c.dom.*;   
private Document document;   
File xml_file=new File(%%1);   
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();   
try {   
DocumentBuilder builder=factory.newDocumentBuilder();   
document=builder.parse(xml_file);   
} catch(Exception e) {   
e.printStackTrace();   
}   
String subNodeTag=%%2;   
Element rootNode=document.getDocumentElement();   
//%%2="serverList" //%%4="id" //%%6="port"   
//%%3="server" //%%5="ipaddr"   
NodeList nlist=rootNode.getElementsByTagName(subNodeTag);   
int len=nlist.getLength();   
Node x=null;   
for(int i=0;i<len;i++) {   
x=nlist.item(i);   
String getNodeAttrValue=null;   
NamedNodeMap attrList=node.getAttributes();   
for(int j=0;j<attrList.getLength();j++) {   
if(attrList.item(j).getNodeName().compareTo(%%7)==0) {   
getNodeAttrValue=attrList.item(j).getNodeValue();   
break;   
}   
}   
if(getNodeAttrValue.compareTo(%%8)==0)   
break;   
}   
String %%9=null;   
if(x!=null) {   
NodeList nlist=node.getChildNodes();   
int len=nlist.getLength();   
Node currentNode;   
String nodeName;   
for(int i=0;i<len;i++) {   
currentNode=nlist.item(i);   
nodeName=currentNode.getNodeName();   
if(nodeName.equals(%%5)==0) {   
%%9=document.getElementValue(currentNode);   
break;   
}   
}   
}    

 
39.写入XML数据库  
//import java.io.*;   
//import javax.xml.parsers.*;   
//import org.xml.sax.*;   
//import org.w3c.dom.*;   
//import javax.xml.transform.*;   
//import javax.xml.transform.dom.*;   
//import javax.xml.transform.stream.*;   
private Document document;   
private Element node;   
File xml_file=new File(%%1);   
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();   
try {   
DocumentBuilder builder=factory.newDocumentBuilder();   
document=builder.parse(xml_file);   
} catch(Exception e) {   
e.printStackTrace();   
}   
String subNodeTag=%%2;   
Element rootNode=document.getDocumentElement();   
//%%2="serverList" //%%4="id" //%%6="port"   
//%%3="server" //%%5="ipaddr"   
NodeList nlist=rootNode.getElementByTagName(subNodeTag);   
node=document.createElement(%%3);   
node.setAttribute(%%4,nlist.getLength()+1).toString());   
node.appendChild(document.createTextNode("\n");   
Element ipNode=document.createElement(%%5);   
ipNode.appendChild(document.createTextNode(%%8));   
node.appendChild(ipNode);   
node.appendChild(document,createTextNode("\n");   
Element port=document.createElement(%%6);   
port.appendChild(document.createTextNode(%%9));   
node.appendChild(port);   
node.appendChild(document,createTextNode("\n");   
nlist.appendChild(node);   
TransformerFactory tFactory=TransformerFactory.newInstance();   
Transformer transformer=null;   
try {   
transformer=tFactory.newTransformer();   
DOMSource source=new DOMSource(document);   
StreamResult result=new StreamResult(xml_file);   
transformer.transform(source,result);   
} catch(Exception e) {   
e.printStackTrace();   
}    

 
40.ZIP压缩文件  
//import java.io.*;   
//import java.util.zip.*;   
//创建文件输入流对象   
FileInputStream fis=new FileInputStream(%%1);   
//创建文件输出流对象   
FileOutputStream fos=new FileOutputStream(%%2);   
//创建ZIP数据输出流对象   
ZipOutputStream zipOut=new ZipOutputStream(fos);   
//创建指向压缩原始文件的入口   
ZipEntry entry=new ZipEntry(args[0]);   
zipOut.putNextEntry(entry);   
//向压缩文件中输出数据   
int nNumber;   
byte[] buffer=new byte[1024];   
while((nNumber=fis.read(buffer))!=-1)   
zipOut.write(buffer,0,nNumber);   
//关闭创建的流对象   
zipOut.close();   
fos.close();   
fis.close();   
}   
catch(IOException e)    
{   
System.out.println(e);   
}    

 
41.ZIP解压缩  
//import java.io.*;   
//import java.util.zip.*;   
try{   
//创建文件输入流对象实例   
FileInputStream fis=new FileInputStream(%%1);   
//创建ZIP压缩格式输入流对象实例   
ZipInputStream zipin=new ZipInputStream(fis);   
//创建文件输出流对象实例   
FileOutputStream fos=new FileOutputStream(%%2);   
//获取Entry对象实例   
ZipEntry entry=zipin.getNextEntry();   
byte[] buffer=new byte[1024];   
int nNumber;   
while((nNumber=zipin.read(buffer,0,buffer.length))!=-1)   
fos.write(buffer,0,nNumber);   
//关闭文件流对象   
zipin.close();   
fos.close();   
fis.close();   
}   
catch(IOException e) {   
System.out.println(e);   
}    

 
42.递归删除目录中的文件  
//import java.io.*;   
//import java.util.*;   
ArrayList<String> folderList = new ArrayList<String>();   
folderList.add(%%1);   
for (int j = 0; j < folderList.size(); j++) {   
File file = new File(folderList.get(j));   
File[] files = file.listFiles();   
ArrayList<File> fileList = new ArrayList<File>();   
for (int i = 0; i < files.length; i++) {   
if (files[i].isDirectory()) {   
folderList.add(files[i].getPath());   
} else {   
fileList.add(files[i]);   
}   
}   
for (File f : fileList) {   
f.delete();   
}   
}    

 
43.ZIP压缩文件夹  
//import java.io.*;   
//import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要到官方网下载   
//import java.util.zip.*;   
try {   
String zipFileName = %%2; //打包后文件名字   
File f=new File(%%1);   
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));   
String base= "";   
if (f.isDirectory()) {   
   File[] fl = f.listFiles();   
   out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));   
   base = base.length() == 0 ? "" : base + "/";   
   for (int i = 0; i < fl.length; i++) {   
   zip(out, fl[i], base + fl[i].getName());   
}   
}else {   
   out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));   
   FileInputStream in = new FileInputStream(f);   
   int b;   
   while ( (b = in.read()) != -1) {   
    out.write(b);   
}   
in.close();   
}   
out.close();   
}catch (Exception ex) {   
   ex.printStackTrace();   
}    

 
44.Java验证DTD  
try   {    
      InputStream   in=new   FileInputStream(filePath);        
SAXReader   saxReader   =   new   SAXReader();    
this.document   =   saxReader.read(in);          
DocumentBuilderFactory       factory       =       null;      
factory       =       DocumentBuilderFactory.newInstance();          
    //进行dtd检查          
factory.setValidating(true);          
}   catch   (Exception   e)   {    
}    

 
45.验证Schema  
String xsdFileName = \"Q:\\\\_dev_stu\\\\xsdtest\\\\src\\\\note.xsd\";    
try {    
//创建默认的XML错误处理器    
XMLErrorHandler errorHandler = new XMLErrorHandler();    
//获取基于 SAX 的解析器的实例    
SAXParserFactory factory = SAXParserFactory.newInstance();    
//解析器在解析时验证 XML 内容。    
factory.setValidating(true);    
//指定由此代码生成的解析器将提供对 XML 名称空间的支持。    
factory.setNamespaceAware(true);    
//使用当前配置的工厂参数创建 SAXParser 的一个新实例。    
SAXParser parser = factory.newSAXParser();    
//创建一个读取工具    
SAXReader xmlReader = new SAXReader();    
//获取要校验xml文档实例    
Document xmlDocument = (Document) xmlReader.read(new File(xmlFileName));    
//设置 XMLReader 的基础实现中的特定属性。核心功能和属性列表可以在 [url]http://sax.sourceforge.net/?selected=get-set[/url] 中    
  
找到。    
parser.setProperty(    
\"http://java.sun.com/xml/jaxp/properties/schemaLanguage",    
\"http://www.w3.org/2001/XMLSchema");    
parser.setProperty(    
\"http://java.sun.com/xml/jaxp/properties/schemaSource",    
\"file:\" + xsdFileName);    
//创建一个SAXValidator校验工具,并设置校验工具的属性    
SAXValidator validator = new SAXValidator(parser.getXMLReader());    
//设置校验工具的错误处理器,当发生错误时,可以从处理器对象中得到错误信息。    
validator.setErrorHandler(errorHandler);    
//校验    
validator.validate(xmlDocument);    
  
XMLWriter writer = new XMLWriter(OutputFormat.createPrettyPrint());    
//如果错误信息不为空,说明校验失败,打印错误信息    
if (errorHandler.getErrors().hasContent()) {    
     System.out.println(\"XML文件通过XSD文件校验失败!\");    
     writer.write(errorHandler.getErrors());    
} else {    
     System.out.println(\"Good! XML文件通过XSD文件校验成功!\");    
}    
} catch (Exception ex) {    
System.out.println(\"XML文件: \" + xmlFileName + \" 通过XSD文件:\" + xsdFileName + \"检验失败。\n原因: \" + ex.getMessage    
  
());    
ex.printStackTrace();    
}    
     }    

 
46.Grep  
//import java.util.regex.Pattern;    
//import java.util.regex.Matcher;    
//import java.io.FileReader;    
//import java.io.BufferedReader;    
//import java.io.IOException;    
  
/**   
* Simple implementation of the ubiquitous grep command.   
* First argument is the regular expression to search for (remember to   
* quote and/or escape as appropriate). All following arguments are   
* filenames to read and search for the regular expression.   
*   
* Created: April, 2002   
* @author Ron Hitchens (ron@ronsoft.com)   
* @version $Id: SimpleGrep.java,v 1.1 2002/05/07 02:21:08 ron Exp $   
*/    
public static void main (String [] argv)    
throws Exception    
{    
if (argv.length < 2) { // 如果参数行没有输入参数,结束程序    
System.out.println ("Usage: regex file [ ... ]");    
return;    
}    
  
Pattern pattern = Pattern.compile (argv [0]); // 第一个参数为需要匹配的字符串    
Matcher matcher = pattern.matcher ("");    
  
// 一次读取各个文件    
for (int i = 1; i < argv.length; i++) {    
String file = argv [i]; // 第2个参数开始,均为文件名。    
BufferedReader br = null;    
String line;    
  
try {    
br = new BufferedReader (new FileReader (file)); // 打开文件    
} catch (IOException e) {    
// 没有打开文件,则产生异常    
System.err.println ("Cannot read '" + file    
+ "': " + e.getMessage());    
continue;    
}    
  
while ((line = br.readLine()) != null) { // 读入一行,直到文件结束    
matcher.reset (line); // 匹配字符串    
  
if (matcher.find()) { // 如果有匹配的字符串,则输出    
System.out.println (file + ": " + line);    
}    
}    
  
br.close(); // 关闭文件   
}   
}   



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hias_asia/archive/2009/04/16/4084403.aspx
分享到:
评论

相关推荐

    java中File类的使用方法 File类的

    Java 中 File 类的使用方法 Java 中的 File 类是 java.io 包中的一员,它提供了对文件和文件夹的操作。下面是对 File 类的使用方法的详细讲解。 构造函数 File 类有多个构造函数,分别是: * `public File...

    java中File类的使用方法

    java中File类的使用方法java中File类的使用方法java中File类的使用方法

    java file类的方法

    在Java编程语言中,`java.io.File`类是一个非常重要的类,它提供了对文件和目录路径名的抽象表示,并且支持一些基本的操作,例如创建、删除文件或目录等。本文将详细介绍`File`类中的常用构造方法及方法,并给出相应...

    java中IO流里面的关于File的讲解源码

    IO流(Input/Output Stream)是Java中处理数据输入和输出的一种机制,分为字节流和字符流两大类。字节流处理的是字节数据,如`InputStream`和`OutputStream`;字符流处理的是字符数据,如`Reader`和`Writer`。`...

    java file,java读取txt文档

    在Java中,`java.io.File`类是用于操作文件和目录的基本工具。它可以用来创建、删除、重命名文件,以及获取文件的属性信息,如大小、路径、最后修改时间等。 要读取一个TXT文档,我们需要使用Java的I/O流。这里主要...

    Java SE程序 File类 ,文件的搜索

    Java SE程序 File类 ,文件的搜索Java SE程序 File类 ,文件的搜索Java SE程序 File类 ,文件的搜索Java SE程序 File类 ,文件的搜索Java SE程序 File类 ,文件的搜索Java SE程序 File类 ,文件的搜索Java SE程序 File类 ,...

    java开发之File类详细使用方法介绍

    Java中的File类是Java IO包(java.io)中的核心类,用于处理文件和文件系统相关的操作,如文件的创建、删除、重命名以及查询文件属性等。File类并不直接涉及文件内容的读写,而是专注于文件对象的元数据管理。 1. *...

    java File类

    Java中的`File`类是Java标准库中用于处理文件和目录的一个重要类,它提供了丰富的API来获取和操作文件及目录的信息。以下是对`File`类及其相关知识点的详细解析: ### File和路径的概念 在Java中,`File`类主要...

    Java 语言File类的详解

    在Java中,一切皆对象,File类也不例外,它将文件或目录视为对象来处理。 **一、File类的基本使用** File类的主要构造函数有以下几种: 1. `File(String path)`:根据给定的路径字符串创建File对象。 2. `File...

    java File文件处理工具类

    Java中的`File`类是Java I/O流体系中不可或缺的一部分,它是用来操作文件和目录的基础类。`File`对象代表了文件和目录路径名的抽象表示。在这个详细的讲解中,我们将深入探讨`File`类的各种功能,包括创建、读取、...

    java中的File类

    Java中的`File`类是Java.io包中的核心类,它提供了在操作系统级别操作文件和目录的能力。`File`类主要用于文件和目录路径名的表示和操作,而不涉及文件的读写。下面我们将深入探讨`File`类的主要特性和常用方法。 1...

    java File类文件的使用

    Java中的`File`类是Java I/O流体系中非常基础且重要的部分,它主要用于操作文件和目录。在Java中,如果你需要对文件进行创建、删除、重命名、获取属性等操作,`File`类就是你的首选。下面我们将深入探讨`File`类的...

    java File类使用总结

    java 中FIle类的使用总结,有File的创建,文件夹的创建,文件的创建,文件的复制,文件的转移等等

    java中File类的delete方法详解.doc

    ### Java中File类的delete方法详解 #### 一、引言 在Java编程语言中,`File`类是处理文件和目录的核心类之一。通过`File`类提供的各种方法,开发者能够实现对文件和目录的基本操作,如创建、读取、重命名、删除等。...

    Day36 Java的file类

    在Java中,`File`类位于`java.io`包中,用于封装文件和目录路径名,并提供了与文件系统交互的方法。它是一个非常重要的类,用于获取文件的各种属性以及进行基本的文件管理操作,如创建、删除文件或目录等。 #### 二...

    Java的File类文件读写以及图片下载的总结

    在Java编程语言中,`File`类是处理文件和目录的核心工具。它是`java.io`包的一部分,提供了许多方法来创建、读取、写入、删除文件以及操作目录。以下是对`File`类以及文件读写、复制和图片下载的详细讲解。 1. **...

    java中File的相对路径与绝对路径总结

    ### Java中File的相对路径与绝对路径总结 在Java Web开发过程中,经常需要处理文件的读写操作,尤其是在运行时获取配置文件、动态加载对象等情况。对于这些需求,理解和掌握文件的相对路径与绝对路径至关重要。 ##...

Global site tag (gtag.js) - Google Analytics