您的位置:首页 > 其它

【DataStructure】A useful util class for reading and writing files

2014-08-14 00:47 330 查看
Faced with the upcoming exam, Some useful methods referred to file operation drew tremenous attention. Now I make a summary to reading file.

[java] view
plaincopy

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;



public class FileUtil

{



public static final String SEP = ":";



public static final String ENCODING = "UTF-8";



/**

* Read the content from file, the format of content is like "Key:Value"

* TODO

*

* @time Jul 17, 2014 11:21:50 AM

* @param filePath

* @return

* @throws Exception

* @return Map<String,String>

*/

public static Map<String, String> readFileToMap(String filePath)

throws Exception

{

System.out.println("读文件[" + filePath + "]开始...");



Map<String, String> contents = new HashMap<String, String>();



File file = new File(filePath);

BufferedReader reader = null;



try

{

reader = new BufferedReader(new InputStreamReader(

new FileInputStream(file), ENCODING));

String info = null;



while ((info = reader.readLine()) != null)

{

contents.put(info.split(SEP)[0], info.split(SEP)[1]);

}

}

catch (FileNotFoundException e)

{

System.out.println("文件[" + filePath + "]未找到.");

throw e;

}

catch (IOException e)

{

System.out.println("文件IO操作出错, 异常信息: " + e.getMessage());

throw e;

}

catch (Exception e)

{

System.out.println("读文件出错, 异常信息: " + e.getMessage());

throw e;

}

finally

{

if (reader != null)

{

try

{

reader.close();

}

catch (IOException e)

{

System.out.println("关闭IO流出错, 异常信息: " + e.getMessage());

throw e;

}

}

}



System.out.println("读文件[" + filePath + "]结束.");



return contents;

}



/**

* Read the content from file, every line will be an element of list.

*

* @time Jul 17, 2014 11:39:07 AM

* @param fileName

* @return

* @return List<String>

*/

public static List<String> readFileToList(String fileName) throws Exception

{

List<String> infos = new ArrayList<String>();



BufferedReader reader = null;



try

{

reader = new BufferedReader(new InputStreamReader(

new FileInputStream(new File(fileName)), "utf-8"));

String info = null;

while ((info = reader.readLine()) != null)

{

infos.add(info);

}

}

catch (FileNotFoundException e)

{

System.out.println("文件[" + fileName + "]未找到.");

throw e;

}

catch (IOException e)

{

System.out.println("文件IO操作出错, 异常信息: " + e.getMessage());

throw e;

}

finally

{

try

{

if (reader != null)

{

reader.close();

}

}

catch (IOException e)

{

e.printStackTrace();

}

}



return infos;

}



/**

* Read all the content from filePath at a time.

*

* @time Jul 17, 2014 11:45:55 AM

* @param filePathOrFileName

* @return

* @return String

*/

public static String readFileToString(String filePath) throws Exception

{

InputStreamReader isReder = null;

BufferedReader br = null;

StringBuffer sb = new StringBuffer();

try

{

File f = new File(filePath);

if (f.isFile() && f.exists())

{

isReder = new InputStreamReader(new FileInputStream(f), "UTF-8");

br = new BufferedReader(isReder);

String line;

while ((line = br.readLine()) != null)

{

sb.append(line).append("\r\n");

}

}

}

catch (Exception e)

{

System.out.println("exception when reading the file" + filePath);

throw e;

}

finally

{

if (isReder != null)

{

try

{

isReder.close();

}

catch (IOException e)

{

e.getMessage();

}

}

if (br != null)

{

try

{

br.close();

}

catch (IOException e)

{

e.getMessage();

}

}

}

return sb.toString();

}



/**

* Write result to the fileName

*

* @time Jul 17, 2014 4:57:57 PM

* @param result

* @param fileName

* @return void

*/

public static void writeFile(String result, String fileName)

{

File f = new File(fileName);

OutputStreamWriter osw = null;

BufferedWriter bw = null;

try

{

if (!f.exists())

{

f.createNewFile();

}

osw = new OutputStreamWriter(new FileOutputStream(f), "UTF-8"); //"gbk"



bw = new BufferedWriter(osw);

bw.write(result);

}

catch (IOException e)

{

System.out.println("IOException when writing result, "

+ e.getMessage());

}

catch (Exception e)

{

System.out.println("Exception when writing result, "

+ e.getMessage());

}

finally

{

if (bw != null)

{

try

{

bw.close();

}

catch (IOException e)

{

System.out.println("IOException when closing FileWriter, "

+ e.getMessage());

}

}



if (osw != null)

{

try

{

osw.close();

}

catch (IOException e)

{

System.out.println("IOException when closing bufferwriter, "

+ e.getMessage());

}

}

}

}



public static void main(String[] args) throws Exception

{

Map<String, String> testMap = FileUtil.readFileToMap("input.txt");

System.out.println("---------------------");

for (Map.Entry<String, String> entry : testMap.entrySet())

{

System.out.println(entry.getKey() + ":" + entry.getValue());

}



System.out.println("---------------------");



List<String> testList = FileUtil.readFileToList("input.txt");



for (String str : testList)

{

System.out.println(str);

}

System.out.println("---------------------");

String test = FileUtil.readFileToString("input.txt");

FileUtil.writeFile(test, "output.txt");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: