BufferedReader in = null;
String line ="";

File file = new File("E:\\dat");
File[] fileList = file.listFiles();

BufferedWriter write = null;

try {

for (File file2 : fileList) {

File writeFile = new File("D:\\data\\"+file2.getName());
writeFile.createNewFile();


in = new BufferedReader(new InputStreamReader(new FileInputStream(file2), "gbk"));
write = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(writeFile),"gbk"));

while((line = in.readLine())!=null){
          System.out.println(line);
          write.write(line+"\n");
        }
}
write.flush();
write.close();
in.close();

}  catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
从E盘dat读取文件 然后写入到D盘data中  但是到D盘去看数据发现跟E盘中数据不一样  没搞清楚怎么回事  有没有碰到过类似问题解决了的  求帮忙解决  急急急

解决方案 »

  1.   

    你确定DAT目录下的文件都是GBK编码么?
      

  2.   

      我觉得跟编码格式没关系   我Dat目录下都是一样的文件
      

  3.   

    dat都是文本文件么?可以用记事本打开的那种?
      

  4.   

        是以.dat为后缀命名的
      

  5.   

    我知道啊,不过dat文件可能是视频文件也可以是文本文件
      

  6.   


    那写法是对的,就是字符集指定的不对,看看原来的dat文件是什么编码格式的。
      

  7.   

    PIPP-1902101-002|PM-01-19-02-01-01|20130522120000|0
    PIPP-1902101-002|PM-01-19-02-01-02|20130522120000|0
    PIPP-1902101-001|PM-01-19-04-01-01|20130522120000|627
    PIPP-1902101-001|PM-01-19-04-01-02|20130522120000|626
     
    这是我文件里的内容格式
      

  8.   

    解决了 那个write.flush()应该放在for循环里