java输入输出问题

fishing999 2014-08-14 08:45:28
从一个文件中一行行地读取字符串,然后一行行地输出到另一个文件中。
用FileWriter类的实例如何实现回车换行?BufferedWriter的实例具有newline()方法可以实现,但是FileWriter类的实例可不可以实现写完一行字符串,换下一行重写写入。
部分代码如下

File copy = new File("copy.txt");
FileWriter fwriter = new FileWriter(copy);
...................
While((line = bufferedreader.readLine()) != null) //bufferedreader是用来从源文件中读取一行行
{
fwriter.write(line); //输出到文本中,都是连续的文本,没法区分一行行
fwriter.flush();
}

fwriter.close();
....................
...全文
460 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
2L正解...
情殇龙灵 2014-08-24
  • 打赏
  • 举报
回复
上面的方法都可以啊
tyilack_小小黑 2014-08-24
  • 打赏
  • 举报
回复
套一个BufferReader进去,然后调用

input.newLine();
//然后在刷新
zxj828282 2014-08-24
  • 打赏
  • 举报
回复
top top top
DamonZH 2014-08-23
  • 打赏
  • 举报
回复
7楼的建议值得采纳,这种方法可以在不同的系统平台下保证正常实现换行
yinan9 2014-08-19
  • 打赏
  • 举报
回复
\r\n 是windows下的换行符 \r 是Mac的 \n 是linux下的,楼主按需求定义
sg19911227 2014-08-19
  • 打赏
  • 举报
回复
更正下 那个true是起到换行输出作用 通常与println()一起
sg19911227 2014-08-19
  • 打赏
  • 举报
回复
package com.gao.csdn; import java.io.BufferedReader; 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.io.PrintWriter; public class InOut { public static void main(String[] args) { // TODO Auto-generated method stub PrintWriter pw=null; FileOutputStream fos=null; try { //从文件中读取数据 FileInputStream fis=new FileInputStream("stud.txt"); //将低级流转为高级流 InputStreamReader isr=new InputStreamReader(fis); //设置为缓冲流 BufferedReader bufferedReader=new BufferedReader(isr); //向文件写数据 fos=new FileOutputStream("tt.txt"); OutputStreamWriter osWriter=new OutputStreamWriter(fos,"utf-8"); pw=new PrintWriter(osWriter,true);//这个true主要作用是起到换行作用 String string=null; while((string=bufferedReader.readLine())!=null){ pw.println(string); } System.out.println("写出完毕"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{//注意关流,否则println是输出在缓冲区 try { pw.close(); fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
Eng_Hady 2014-08-16
  • 打赏
  • 举报
回复
我觉得楼主可以用PrintWriter 的自动行刷新功能来实现。或者像楼上其他朋友说的一样,在输出后面再加个System.out.println();就可以了
remember1989 2014-08-15
  • 打赏
  • 举报
回复
line 本身没有包含换行,你需要在每次输出 line 之后再输出一个换行。
xiaofeifeiloving 2014-08-15
  • 打赏
  • 举报
回复
你可以把读取的数据放入一个数组,然后再写入就方便点了。。
刘开强 2014-08-15
  • 打赏
  • 举报
回复
支持longtian1213的做法 不过写换行符时,建议用System.getProperty("line.separator")属性
  • 打赏
  • 举报
回复
输入完一行后再输入一个空行不就行了
程序男 2014-08-15
  • 打赏
  • 举报
回复
支持楼上解法,遇到问题不能死板啊,楼主。
Hi_ZaiJian 2014-08-15
  • 打赏
  • 举报
回复
readLine()在取的时候是一行一行的取的,它只能当前一行的内容,而它的内容中并不存在换行,所以在输出的时候给它加上换行标识符就行了: fwriter.write(line+"\r\n");
zhjdg 2014-08-14
  • 打赏
  • 举报
回复
本来就该一个套一个的, FileWriter 这个在底2层的,基本上就是scaffolder 看看源代码就知道。
S117 2014-08-14
  • 打赏
  • 举报
回复

fwriter.write(line);
 fwriter.append("\r\n");

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧