这个程序是将A文件和B文件的内容合并到C文件。
都是txt文件,
- HTML code
A的内容:这是一个B文件的内容:java练习
可是合并后,C文件的内容就是一行“这是一个java练习”,为什么没有换行呢?
我刚开始学IO,老手能否指点一下,谢谢!!
下面是代码:
- Java code
import java.io.*;public class Combine { public static void main(String[] args) { String[] name = new String[2]; String nameC = null; System.out.println("About this program:这个程序可以将您输入的两个文件A与B合并成C"); System.out.println("请输入您想合并两个文件名(加上后缀),每个文件名以回车确认:"); BufferedReader getInput = new BufferedReader(new InputStreamReader( System.in)); BufferedReader bufferedR = null; BufferedWriter bufferedW = null; File[] file = new File[2]; try { for (int i = 0; i < 2; i++) { name[i] = getInput.readLine(); file[i] = new File(name[i]); } nameC = name[0].substring(0, name[1].indexOf(".")) + name[1]; bufferedW = new BufferedWriter(new FileWriter( new File(nameC))); String line; for (int i = 0; i < 2; i++) { bufferedR = new BufferedReader(new FileReader(file[i])); while ((line = bufferedR.readLine()) != null) { bufferedW.write(line + "\n"); System.out.println("next"); getInput.read(); } } System.out.println("合并成功!"); } catch (IOException e) { e.printStackTrace(); } finally { try { getInput.close(); bufferedR.close(); bufferedW.close(); } catch (Exception e) { System.out.println("Wrong when close the stream."); } } }}
------解决方案--------------------
bufferedW.write(line + "\n");
楼主只加了换行,你把回车加上试试。
bufferedW.write(line + "\r\n");
------解决方案--------------------
在c文件中 是不是有黑色杠杠 如果有 那就代表了换行了, 只是在txt 文件中表现形式不一样而已
------解决方案--------------------
学习学习
------解决方案--------------------
楼主方便的话,把三个文件发给我:
nmyangym@126.com
------解决方案--------------------
应该是A,B2个文件的字符编码不一样吧。
------解决方案--------------------
B.txt 文件有问题,前三个字节"EF BB BF",连接到ab.txt后,也是这样.
建议删除b.txt,再建一个吧。
另外看连接的文件,还是没有回车。("0D").你看是否写入文件时 加了"\r".