将一种格式的文件读入,以另一种格式写出文件

来源:互联网 发布:大数据数据库选择 编辑:程序博客网 时间:2024/06/16 15:59
import java.io.*;


/**
 * 将一种格式的文件读入,以另一种格式写出文件
 *  PS:如果源文件和目标文件都是同一个工程创建的,那么可以不要srcUnicode和destUnicode
 * @author Administrator
 * 
 */
public class GBK2Utf8
{


public static void main(String[] args)
{
gbk2Utf8("D:/confCheck/logs/confChecker.log","GB2312","D:/confCheck/logs/confChecker.txt","UTF-8");
}



/**
*
* @param srcPath 源文件路径
* @param srcUnicode 源文件编码格式
* @param destPath  目标文件路径
* @param destUnicode 目标文件编码格式
*/
public static void gbk2Utf8(String srcPath,String srcUnicode, String destPath,String destUnicode)
{
try
{
//读入 gbk
InputStreamReader isr = new InputStreamReader(new FileInputStream(srcPath), srcUnicode);
//读入缓存
BufferedReader br = new BufferedReader(isr);

//写出 utf8格式
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(destPath),destUnicode);
//写出缓存
BufferedWriter bw = new BufferedWriter(osw);


String line = "";
//逐行读
while ((line = br.readLine()) != null)
{
bw.write(line);
bw.newLine();


}
// 因为IO是先写入缓冲区,缓冲区满了才写入文件, 如果最后不满但是不flush,会导致数据不全
bw.flush();
bw.close();
osw.close();
br.close();
isr.close();
System.out.println("写入完成!");
} catch (IOException e)
{
e.printStackTrace();
}
}


}
0 0