请教:如何将String里边的内容按原格式写入文件

在做加密解密程序
首先从文件里读取内容 加密后存进另一文件
后从该文件里读取 解密后放进一个String里(控制台输出格式正常) 然后写到另一文件里
写进后发现该文件里没了换行 几段内容乱成一体了
如何才能保持远格式写入呢?

我用的
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"GBK"));

由于是从加密文件里解密出来的String 是一个整体 不是从文件里读一行写一行

还是上次的那个问题么?

你读原文件的时候readline,这是读一行,然后在后面加了\n,问题就出在这,原来一行是以\r\n结尾的,你readline过后,\r\n没了,而你只手动加上了\n,这样\r就丢了..

所以你可能看到原文件是好的,但是经过加密解密过后内容都是对的,但是不换行了.

代码我回在那个问题里了,这里就不再贴一遍了.

你不要用字符流,改用字节流试试。
String text = "解密之后的字符串";
File file = new File("写文件位置和文件名");
OutputStream bos = new FileOutputStream(file);
bos.write(test.getBytes());
bos.colse();
这样应该就没有问题了。

话说,楼主使用记事本打开的文件吧?
这个是记事本的问题,\n不会换行,楼主可以用写字板、word神马的打开新生成的文件,就会看到正常的格式了……

我相信楼主一定用错了加密解密的API,
通常,加解密是针对字节流的,不是针对字符流的。
你顺着这个思路去走,试试看。

BTW, 能把你加解密的API声明帖出来看看吗?

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"GBK"));

[quote]你说得对 的确是这样
有没有办法让记事本里也正常显示呢[/quote]
既然是文本加解密,
在解密之后,对"\n"使用"\r\n"进行替换,就行了。