Java字符串與文件的互轉
Java中有時候須要讀取一個文本類的文件,將其轉換爲字符串,而後作進一步處理。Java中沒有現成的API方法,本身手動實現一個,你們來分享。
1、字符串轉換爲文件
/**
* 將字符串寫入指定文件(當指定的父路徑中文件夾不存在時,會最大限度去建立,以保證保存成功!)
*
* @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;
}
2、文件轉換爲字符串
/**
* 文本文件轉換爲指定編碼的字符串
*
* @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便可,此時使用系統默認的編碼類型。