`
nudtgk2000
  • 浏览: 71080 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

【转载】java 文件操作大全(1)

阅读更多
所有代码转载时未经测试
1.创建文件夹
//import java.io.*; 
File myFolderPath = new File(%%1); 
try { 
    if (!myFolderPath.exists()) { 
        myFolderPath.mkdir(); 
    } 
} catch (Exception e) { 
    System.out.println("新建目录操作出错"); 
    e.printStackTrace(); 
}

2.创建文件
//import java.io.*; 
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.删除文件
//import java.io.*; 
File myDelFile = new File(%%1); 
try { 
    myDelFile.delete(); 
} catch (Exception e) { 
    System.out.println("删除文件操作出错"); 
    e.printStackTrace(); 
}

4.删除文件夹
//import java.io.*; 
File delFolderPath = new File(%%1); 
try { 
    delFolderPath.delete(); //删除空文件夹 
} catch (Exception e) { 
    System.out.println("删除文件夹操作出错"); 
    e.printStackTrace(); 
}

5.删除一个文件下夹所有的文件夹
//import java.io.*; 
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.清空文件夹
//import java.io.*; 
File delfilefolder = new File(%%1); 
try { 
    if (!delfilefolder.exists()) { 
        delfilefolder.delete(); 
    } 
    delfilefolder.mkdir(); 
} catch (Exception e) { 
    System.out.println("清空目录操作出错"); 
    e.printStackTrace(); 
}

7.读取文件
//import java.io.*; 
// 逐行读取数据 
FileReader fr = new FileReader(%%1); 
BufferedReader br = new BufferedReader(fr); 
String %%2 = br.readLine(); 
while (%%2 != null) {  
    /*TO ADD CODE*/
    %%2 = br.readLine(); 
} 
br.close(); 
fr.close();

8.写入文件
//import java.io.*; 
// 将数据写入文件 
try { 
    FileWriter fw = new FileWriter(%%1); 
    fw.write(%%2); 
    fw.flush(); 
    fw.close();  
} catch (IOException e) { 
    e.printStackTrace(); 
}

9.写入随机文件
//import java.io.*; 
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.读取文件属性
//import java.io.*; 
// 文件属性的取得 
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.写入属性
//import java.io.*; 
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.*; 
LinkedList<String> folderList = new LinkedList<String>(); 
folderList.add(%%1); 
while (folderList.size() > 0) { 
    File file = new File(folderList.peek()); 
    folderList.removeLast(); 
    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.getAbsoluteFile(); 
        %%3 
    } 
}

13.复制文件夹
//import java.io.*; 
//import java.util.*; 
LinkedList<String> folderList = new LinkedList<String>(); 
folderList.add(%%1); 
LinkedList<String> folderList2 = new LinkedList<String>(); 
folderList2.add(%%2+ %%1.substring(%%1.lastIndexOf("\\"))); 
while (folderList.size() > 0) { 
    (new File(folderList2.peek())).mkdirs();    // 如果文件夹不存在 则建立新文件夹 
    File folders = new File(folderList.peek()); 
    String[] file = folders.list(); 
    File temp = null; 
    try { 
        for (int i = 0; i < file.length; i++) { 
            if (folderList.peek().endsWith(File.separator)) { 
                temp = new File(folderList.peek() + File.separator + file[i]); 
            } else { 
                temp = new File(folderList.peek() + File.separator + file[i]); 
            } 
            if (temp.isFile()) { 
                FileInputStream input = new FileInputStream(temp); 
                FileOutputStream output = new FileOutputStream( folderList2.peek() 
                                                              + File.separator 
                                                              + (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()) {    // 如果是子文件夹 
                for (File f : temp.listFiles()) { 
                    if (f.isDirectory()) { 
                        folderList.add(f.getPath()); 
                        folderList2.add(folderList2.peek()
                                      + File.separator
                                      + f.getName());
                    } 
                } 
            } 
        } 
    } catch (Exception e) { 
        //System.out.println("复制整个文件夹内容操作出错"); 
        e.printStackTrace(); 
    } 
    folderList.removeFirst(); 
    folderList2.removeFirst(); 
}

14.复制一个文件夹下所有的文件夹到另一个文件夹下
//import java.io.*; 
//import java.util.*; 
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.get(j))).mkdirs();    //如果文件夹不存在 则建立新文件夹 
            File folders = new File(folderList.get(j)); 
            String[] file = folders.list(); 
            File temp=null; 
            try { 
                for (int i = 0; i < file.length; i++) { 
                    if (folderList.get(j).endsWith(File.separator)) { 
                        temp = new File(folderList.get(j) + "/" + file[i]); 
                    } else { 
                        temp = new File(folderList.get(j)
                                      + "/"
                                      + File.separator
                                      + file[i]); 
                    } 
                    FileInputStream input = new FileInputStream(temp); 
                    if (temp.isFile()) { 
                        FileInputStream input = new FileInputStream(temp); 
                        FileOutputStream output = new FileOutputStream(
                                                          folderList2.get(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 
                    if (temp.isDirectory()) {    //如果是子文件夹 
                        folderList.add(folderList.get(j) + "/" + file[i]); 
                        folderList2.add(folderList2.get(j) + "/" + file[i]); 
                    } 
                }//for 
            } catch (Exception e) { 
                System.out.println("复制整个文件夹内容操作出错"); 
                e.printStackTrace(); 
            } 
        }//for 
    }//if
}//for

15.移动文件夹
//import java.io.*; 
//import java.util.*; 
LinkedList<String> folderList = new LinkedList<String>(); 
folderList.add(%%1); 
LinkedList<String> folderList2 = new LinkedList<String>(); 
folderList2.add(%%2 + %%1.substring(%%1.lastIndexOf("\\"))); 
while (folderList.size() > 0) { 
    (new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹
    File folders = new File(folderList.peek()); 
    String[] file = folders.list(); 
    File temp = null; 
    try { 
        for (int i = 0; i < file.length; i++) { 
            if (folderList.peek().endsWith(File.separator)) { 
                temp = new File(folderList.peek() + File.separator + file[i]); 
            } else { 
                temp = new File(folderList.peek() + File.separator + file[i]); 
            } 
            if (temp.isFile()) { 
                FileInputStream input = new FileInputStream(temp); 
                FileOutputStream output = new FileOutputStream( 
                                                  folderList2.peek()
                                                + File.separator
                                                + (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.delete()) { 
                    System.out.println("删除单个文件操作出错!"); 
                }
            }//if 
            if (temp.isDirectory()) {// 如果是子文件夹 
                for (File f : temp.listFiles()) { 
                    if (f.isDirectory()) { 
                        folderList.add(f.getPath()); 
                        folderList2.add(folderList2.peek()
                                      + File.separator
                                      + f.getName()); 
                    } 
                } 
            } 
        }//for 
    } catch (Exception e) { 
        // System.out.println("复制整个文件夹内容操作出错"); 
        e.printStackTrace(); 
    } 
    folderList.removeFirst(); 
    folderList2.removeFirst(); 
}//while 
File f = new File(%%1); 
if (!f.delete()) { 
    for (File file : f.listFiles()) { 
        if (file.list().length == 0) { 
            System.out.println(file.getPath()); 
            file.delete(); 
        } 
    } 
}

16.移动一个文件夹下所有的文件夹到另一个目录下
//import java.io.*; 
//import java.util.*; 
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.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹 
            File folders = new File(folderList.get(j)); 
            String[] file = folders.list(); 
            File temp=null; 
            try { 
                for (int i = 0; i < file.length; i++) { 
                    if (folderList.get(j).endsWith(File.separator)) { 
                        temp = new File(folderList.get(j) + "/" + file[i]); 
                    } else { 
                        temp=new File(folderList.get(j) + "/"
                                    + File.separator + file[i]); 
                    } 
                    FileInputStream input = new FileInputStream(temp); 
                    if (temp.isFile()) { 
                        FileInputStream input = new FileInputStream(temp); 
                        FileOutputStream output = new FileOutputStream( 
                                                          folderList2.get(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 
                    if (temp.isDirectory()) {//如果是子文件夹 
                        folderList.add(folderList.get(j) + "/" + file[i]); 
                        folderList2.add(folderList2.get(j) + "/" + file[i]); 
                    } 
                }//for 
            } catch (Exception e) { 
                System.out.println("复制整个文件夹内容操作出错"); 
                e.printStackTrace();
            } 
        }//try 
        movefoldersList[k].delete(); 
    }//if 
}//for

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

18.复制文件
//import java.io.*; 
int bytesum = 0; 
int byteread = 0; 
File oldfile = new File(%%1); 
try { 
    if (oldfile.exists()) { //文件存在时 
        FileInputStream 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.复制一个文件夹下所有的文件到另一个目录
//import java.io.*; 
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(); 
        } 
    }//if 
}//for

20.提取扩展名
String %%2 = %%1.substring(%%1.lastIndexOf(".")+1);

21.提取文件名
String %%2 = %%1.substring(%%1.lastIndexOf("\\")+1);

22.提取文件路径
String %%2 = %%1.substring(0,%%1.lastIndexOf("\\"));

23.替换扩展名
//import java.io.*; 
File replaceExt = new File(%%1); 
replaceExt.renameTo(replaceExt.getName().split(".")[0] + "." + %%2);

24.追加路径
final String path = %%1.endsWith("\\") ? %%1 : %%1+"\\"; 
%%3=path+%%2;

25.移动文件
//import java.io.*; 
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.移动一个文件夹下所有文件到另一个目录
//import java.io.*; 
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(); 
        } 
    }//if 
}//for

27.指定目录下搜索文件
//import java.io.*; 
String filter = "*.*"; 
String path = %%1; 
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.打开对话框
//import java.io.*; 
//import javax.swing.*; 
JFileChooser Jfc = new JFileChooser(); //建立选择档案对话方块盒 Jfc 
if (Jfc.isFileSelectionEnabled()) { 
    File %%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.文件简单加密
//import java.io.* 
try { 
    File f=new File((new File(%%1)).getPath() + "\\enc_" + (new File(%%1)).getName().split("//")[1]); 
    String strFileName = f.getName(); 
    FileInputStream fileInputStream = new FileInputStream(%%2 + "\\" + 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; 
        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(); 
}

32.文件简单解密
//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(); 
}

33.写入ini文件属性
//import java.io.*; 
//import java.util.*; 
//import java.util.regex.*;  
if (configMap == null) { 
    String WriteBuffer = ""; 
    configMap = new HashMap<String, Serializable>(); 
    String strLine = null; 
    String currentNode = null; 
    String previousNode = null; 
    Vector<Properties> vec = new Vector<Properties>(); 
    int row = 0; 
    FileReader fileReader = null; 
    try { 
        fileReader = new FileReader("Config.ini"); 
    } catch (FileNotFoundException e1) { 
        e1.printStackTrace(); 
    } 
    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.matcher(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 (keylen == 2) { 
                        strArray1[0] = "@Key"; 
                        strArray1[1] = oneLine.split("=")[0]; 
                        strArray1[2] = oneLine.split("=")[1]; 
                    } else { 
                        strArray1[0] = "@ElementError"; 
                        strArray1[1] = ""; 
                        strArray1[2] = ""; 
                        strArray1[3] = ""; 
                    } 
                }//else 
                if (strArray1[0].equals("@Node")) { 
                    previousNode = currentNode; 
                    currentNode = strArray1[1]; 
                    if (row > 0) { 
                        configMap.put(previousNode, vec.elementAt(0)); 
                        vec.clear(); 
                        row = 0; 
                    } 
                    WriteBuffer += (oneLine + "\r\n"); 
                } else if (strArray1[0].equals("@Key") && row == 0) { 
                    Properties ht = new Properties(); 
                    ht.setProperty(strArray1[1], strArray1[2]); 
                    if (strArray1[1].equals(%%1)) { 
                        WriteBuffer += (%%1 + "=" + %%2 + "\r\n"); 
                    } else {
                        WriteBuffer += (oneLine + "\r\n"); 
                        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); 
                    WriteBuffer += (oneLine + "\r\n"); 
                    row++; 
                } 
            }//if 
        }//while 
        configMap.put(currentNode, vec.elementAt(0)); 
    } catch (FileNotFoundException e) { 
        configMap = null; 
        e.printStackTrace(); 
    } catch (IOException e) { 
        configMap = null; 
        e.printStackTrace(); 
    } finally { 
        vec.clear(); 
        try { 
            bufferedReader.close(); 
            fileReader.close(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        try { 
            FileWriter fw = new FileWriter("Config.ini"); 
            fw.write(WriteBuffer); 
            fw.flush(); 
            fw.close(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 
}//if

34.读取ini文件属性
//import java.io.*; 
//import java.util.*; 
//import java.util.regex.*;  
//private HashMap configMap=null; 
private Map<String, Serializable> configMap = null; 
String %%2 = null; 
if (configMap == null) { 
    configMap = new HashMap<String, Serializable>(); 
    String strLine = null; 
    String currentNode = null; 
    String previousNode = null; 
    Vector<Properties> vec = new Vector<Properties>(); 
    int row = 0; 
    FileReader fileReader = null; 
    try { 
        fileReader = new FileReader("Config.ini"); 
    } catch (FileNotFoundException e1) { 
        e1.printStackTrace(); 
    } 
    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.matcher(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 (keylen == 2) { 
                        strArray1[0] = "@Key"; 
                        strArray1[1] = oneLine.split("=")[0]; 
                        strArray1[2] = oneLine.split("=")[1]; 
                    } else { 
                        strArray1[0] = "@ElementError"; 
                        strArray1[1] = ""; 
                        strArray1[2] = ""; 
                        strArray1[3] = ""; 
                    } 
                }//else 
                if (strArray1[0].equals("@Node")) { 
                    previousNode = currentNode; 
                    currentNode = strArray1[1]; 
                    if (row > 0) { 
                        configMap.put(previousNode, vec.elementAt(0)); 
                        vec.clear(); 
                        row = 0; 
                    } 
                } else if (strArray1[0].equals("@Key") && row == 0) { 
                    Properties ht = new Properties(); 
                    ht.setProperty(strArray1[1], strArray1[2]); 
                    if (strArray1[1].equals(%%1)) { 
                        %%2 = strArray1[2]; 
                        return; 
                    } 
                    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++; 
                } 
            }//if 
        }//while 
        configMap.put(currentNode, vec.elementAt(0)); 
    } catch (FileNotFoundException e) { 
        configMap = null; 
        e.printStackTrace(); 
    } catch (IOException e) { 
        configMap = null; 
        e.printStackTrace(); 
    } finally { 
        vec.clear(); 
        try { 
            bufferedReader.close(); 
            fileReader.close(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 
}//if

转载自http://tieba.baidu.com/f?kz=585908932
另有一篇http://andyone.iteye.com/blog/316990
分享到:
评论

相关推荐

    java文件操作大全

    如何在Java中操作文件呢?转载供大家欣赏

    java NIO文件操作(中文版pdf)

    java NIO文件操作(中文版pdf),希望对大家有帮助,(转载)

    java文件路径操作详细(转载)

    NULL 博文链接:https://704378737-qq-com.iteye.com/blog/796566

    java applet 操作本地文件

    转载:applet来操作本地文件。 数字签名:采用加密技术来实现对签名者身份的认证和数据的完整性。简单的说就是你签字的文件别人知道是你签的,并且知道这个文件是否被修改过。 我们可以通过 数字签名 applet的jar...

    基于Java的minio相关操作示例

    基于springboot的小型Java项目,主要与minio存储有关,包含了各种minio相关操作,包括新建bucket存储桶、查询文件列表、文件上传、下载、预览等。个人资源,请勿转载

    java语言整合API接口自动化测试框架

    MyFileUtils.java ##文件的操作类 Out.java ##重新封装了System.out.println()方法,打印当前的时间 TaskModel.java ##创建本次API测试的任务 TestApi.java ##执行测试 TimeUtils.java ##操作时间的...

    docx,pdf,xlsx文件操作.zip

    转载于中国大学mooc《Java核心技术》陈老师的文件,主要示例了docx,表格,pdf文件的操作方式。

    JACOB jar 下载 ,方便java 操作office 软件

    com一般表现为dll或exe等二进制文件,像我们呆会会用到的jacob.dll文件这里说说为什么我们用java去操纵office(如:word)要使用com,而不直接 使用java去做? 首先,我们清楚office是建立在windows平台之上的,本身是...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...

    JAVA基础知识精华总结 收藏

    (1) 一个对象是常量,不代表不能转变对象的成员,仍可以其成员进行操作。 (2) 常量在使用前必须赋值,但除了在声明的同时初始化外,就只能在构造方法中初始化 。 (3) final修饰的方法不能被重置(在子类中不能...

    Java XML绑定技术 (Castor JAXB XMLBeans)

    本文系原创,如需转载请注明作者...本文详细介绍了Java XML绑定技术,并重点说明了如果使用JAXB来简化XML文档的操作。如果你的Java项目中需要使用XML(作为配置文件或数据库),不妨试一下JAXB,你一定会有惊喜的发现。

    java8源码-ios_super_sign:超级签名免签封装安卓打包企业签名自助分发多合一系统

    java8 源码 ios_super_sign 超级签名 免签封装 安卓打包 企业签名 自助分发多合一系统 主要功能 基本操作 修改密码 用户信息 共有池 退出 超级签名 应用列表 应用信息 安卓合并 简介编辑 轮播图编辑 分发地址复制 ...

    这是我的第一个

    当我们第一次访问jsp的时候,tomcat需要吧jsp翻译成一个java文件,然后在编译成class文件,然后在运行。 --------------------- 作者:java_esky110 来源:CSDN 原文:...

    Linux 中批量提取文件夹下所有目录及文件名称

    1、当前目录下打开CMD控制台窗口,执行如下bat命令:dir *.*/b&gt;文件名.txt 2、如下图例操作步骤: ... 您可能感兴趣的文章:利用Python批量提取Win10锁屏壁纸实战教程Python批量提取PDF文件中文本的脚本Java文件

    SweetScape 010 Editor 8 汉化版

    20、能够以 十六进制文本、 C/C++ 代码、Java 代码、Intel 十六进制格式 (8, 16, 或 32 位版本)、或 Motorola S-Records (3 种类型)形式导入或导出数据。 21、打印操作支持完整的打印预览、页眉、页脚和页边距的设置...

    Musou系列游戏MOD工具v0.1

    ps1:资源文件需要用Van的RPGViewer(http://e.ys168.com/?pigspy)解包导出(选择(A)ddon-&gt;压缩包操作);导出的模型将扩展名改为musouM,贴图改为musouT. ps2:游戏载入资源文件需要用千人斩竞争的ORZ launcher(对应大蛇Z)...

    springmybatis

    5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis...

Global site tag (gtag.js) - Google Analytics