【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");
}
}
[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");
}
}
相关文章推荐
- Reading and Writing CSV Files in MFC
- Reading and Writing CSV Files in C#
- Reading and Writing Perl Config Files
- Reading and writing RData files
- Reading and Writing Local Files in Flash Player 10
- Reading and Writing CSV Files in MFC
- Reading and writing files in Java (Input/Output) - Tutorial
- Reading and writing binary files
- Reading and writing .mat files with Python
- GoAsm requires square brackets for writing to, and reading from, memory
- Cocoa stream 系列1---异步读取文件(Reading and Writing Files Asynchronously)
- reading and writing xml files
- 1.7writing and reading files
- Reading and writing text files
- Creates a pipe for reading and writing的例子程序
- Reading and writing text files
- Reading and Writing CSV Files in C#
- Class for reading INI files
- Reading and Writing to Binary Files
- Reading and writing text files