向一个文本中写入多行数据,为什么打开文本后全在一行上?谢谢
String fileName="d:\\Hello.txt";
FileWriter writer;
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
System.err.println("请输入若干行,直接安回车结束");
try{
writer=new FileWriter(fileName);
String line=in.readLine();
while(line!=null){
if(line.length()==0)
break;
writer.write(line + "\n");
line=in.readLine();
}
writer.close();
}

解决方案 »

  1.   

    windows 系统操行符是"\r\n" 而不是 "\n" ,试试改成"\r\n"
      

  2.   

    FileWriter不好用,别自己转了。PrintWriter out = new PrintWriter(new FileOutputStream(fileName));带回车
    out.println('xxxxxxxxxxxxxxxxxxxxxxxxxxxx');
    不带回车
    out.print('yyyyyyyy');
      

  3.   


    import java.io.*;
    class q
    {
        public static void main(String[] args)
        {
            String fileName="E:\\java\\1.txt"; 
            FileWriter writer; 
            BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); 
            System.err.println("请输入若干行,回车结束"); 
            try{ 
                writer=new FileWriter(fileName); 
                String line=in.readLine(); 
                while(line!=null){ 
                    if(line.length()==0) 
                    break; 
                    writer.write(line + System.getProperty("line.separator", "\n")); 
                    line=in.readLine(); 
                } 
                writer.close(); 
            }catch(IOException e)
            {
                System.out.println(e.getMessage());
            }
        }
    }
      

  4.   

    writer.write(line + "\n"); "\n"这个符合是DOS下的换行符合,你要在文本里换行直接用writer.writeln(line); 就可以了