码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-07-18 12:26:25      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:java   read write file   

Faced with the upcoming exam, Some useful methods referred to file operation drew tremenous attention. Now I make a summary to reading file.

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

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

标签:java   read write file   

原文地址:http://blog.csdn.net/sxb0841901116/article/details/37913599

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!