Java字符串與文件的互轉

Java字符串與文件的互轉
Java中有時候需要讀取一個文本類的文件,將其轉換爲字符串,然後做進一步處理。Java中沒有現成的API方法。

一、字符串轉換爲文件

    /** 
     * 將字符串寫入指定文件(當指定的父路徑中文件夾不存在時,會最大限度去創建,以保證保存成功!) 
     * 
     * @param res  原字符串 
     * @param filePath 文件路徑 
     * @return 成功標記 
     */ 
    public static boolean string2File(String res, String filePath) { 
            boolean flag = true; 
            BufferedReader bufferedReader = null; 
            BufferedWriter bufferedWriter = null; 
            try { 
                    File distFile = new File(filePath); 
                    if (!distFile.getParentFile().exists()) distFile.getParentFile().mkdirs(); 
                    bufferedReader = new BufferedReader(new StringReader(res)); 
                    bufferedWriter = new BufferedWriter(new FileWriter(distFile)); 
                    char buf[] = new char[1024];         //字符緩衝區 
                    int len; 
                    while ((len = bufferedReader.read(buf)) != -1) { 
                            bufferedWriter.write(buf, 0, len); 
                    } 
                    bufferedWriter.flush(); 
                    bufferedReader.close(); 
                    bufferedWriter.close(); 
            } catch (IOException e) { 
                    e.printStackTrace(); 
                    flag = false; 
                    return flag; 
            } finally { 
                    if (bufferedReader != null) { 
                            try { 
                                    bufferedReader.close(); 
                            } catch (IOException e) { 
                                    e.printStackTrace(); 
                            } 
                    } 
            } 
            return flag; 
    }

 

二、文件轉換爲字符串

     /** 
     * 文本文件轉換爲指定編碼的字符串
     * @param file  文本文件 
     * @param encoding 編碼類型 
     * @return 轉換後的字符串 
     * @throws IOException 
     */ 
    public static String file2String(File file, String encoding) { 
            InputStreamReader reader = null; 
            StringWriter writer = new StringWriter(); 
            try { 
                    if (encoding == null || "".equals(encoding.trim())) { 
                            reader = new InputStreamReader(new FileInputStream(file), encoding); 
                    } else { 
                            reader = new InputStreamReader(new FileInputStream(file)); 
                    } 
                    //將輸入流寫入輸出流 
                    char[] buffer = new char[DEFAULT_BUFFER_SIZE]; 
                    int n = 0; 
                    while (-1 != (n = reader.read(buffer))) { 
                            writer.write(buffer, 0, n); 
                    } 
            } catch (Exception e) { 
                    e.printStackTrace(); 
                    return null; 
            } finally { 
                    if (reader != null) 
                            try { 
                                    reader.close(); 
                            } catch (IOException e) { 
                                    e.printStackTrace(); 
                            } 
            } 
            //返回轉換結果 
            if (writer != null) 
                    return writer.toString(); 
            else return null; 
    }

 

不想拋出太多的檢查異常,如果你需要捕捉,就拋出吧。

注意:對於文件轉換爲字符串,存在一個編碼問題。上面的file2String方法中,如果你不知道編碼,調用時候方法設爲null即可,此時使用系統默認的編碼類型。

作者:zhangvalue
來源:CSDN
原文:https://blog.csdn.net/zhangvalue/article/details/76025260
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章