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");
- }
- }
【DataStructure】A useful util class for reading and writing files,布布扣,bubuko.com
时间: 2024-10-12 07:55:09