一个很简单的程序:在一本JTextArea里面输入如下内容:
A
B
C
D
想通过如下程序把这些内容输出到一个文件里面,但文件里面显示的是一行,哪位高手能教我怎样按原来的格式(即四行)输出到文件里面?感激*10000000000000000000000000。
附源代码:import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Iterator;
public class Test extends JFrame implements ActionListener{
JButton bt;
JTextArea ta;
public Test() {
Container cp=getContentPane();
cp.setLayout(null);
ta=new JTextArea();
JScrollPane sp=new JScrollPane(ta);
sp.setBounds(0,0,400,450);
bt=new JButton("输出");
bt.setBounds(170,470,60,50);
bt.addActionListener(this);
    cp.add(sp);
    cp.add(bt);
    setBounds(200,100,400,550);
    setVisible(true);
    
} @Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==bt){
try{
     File outputFile=new File("C://输入文件.txt");
     FileWriter fileWriter=new FileWriter(outputFile);
     BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
     String output=ta.getText();
     bufferedWriter.write(output, 0,output.length());
     bufferedWriter.flush();
     fileWriter.close();
     bufferedWriter.close();
    }
    catch (IOException ee) {}
}
}
public static void main(String[] args) {
Test frm=new Test();
}
}

解决方案 »

  1.   


    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;public class Test extends JFrame implements ActionListener {
    JButton bt;
    JTextArea ta; public Test() {
    Container cp = getContentPane();
    cp.setLayout(null);
    ta = new JTextArea();
    JScrollPane sp = new JScrollPane(ta);
    sp.setBounds(0, 0, 400, 450);
    bt = new JButton("输出");
    bt.setBounds(170, 470, 60, 50);
    bt.addActionListener(this);
    cp.add(sp);
    cp.add(bt);
    setBounds(200, 100, 400, 550);
    setVisible(true); } public void actionPerformed(ActionEvent e) {
    if (e.getSource() == bt) {
    try {
    File outputFile = new File("C://输入文件.txt");
    FileWriter fileWriter = new FileWriter(outputFile);
    BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
    //得到换行符,这种方式得到的更加通用
    String lineseparator = System.getProperty("line.separator");
    String output = ta.getText();
    //替换里面的回车为换行
    output = output.replaceAll("\\n", lineseparator);
    bufferedWriter.write(output, 0, output.length());
    bufferedWriter.flush();
    fileWriter.close();
    bufferedWriter.close();
    } catch (IOException ee) {
    }
    }
    } public static void main(String[] args) {
    Test frm = new Test();
    }}
      

  2.   


    public void actionPerformed(ActionEvent e) {
    if (e.getSource() == bt) {
    try {
    File outputFile = new File("C://输入文件.txt");
    FileWriter fileWriter = new FileWriter(outputFile);
    BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
    String output = ta.getText();
    String output1 = output.replaceAll("\n", "\r\n");
    bufferedWriter.write(output1, 0, output1.length());
    bufferedWriter.flush();
    fileWriter.close();
    bufferedWriter.close();
    } catch (IOException ee) {
    }
    }
    }把\n  替换为 \n\r就好了
      

  3.   

    \r回到行的开始   \n到下一行
    \r\n就是回到行首并且跳到下行  [回车]
      

  4.   

    windows下的换行,如果这样写的话,在这个平台下可以,换做另外的平台就又不行了,所以建议用System.getProperty("line.separator")得到该平台下的换行符,然后使用就行了!
      

  5.   

    那个ta.getText();得到的字符串为  a\nb\nc 之类
    只是普通替换   \r\n  只要  bufferwriter.write()  \r\n时将会默认  回车换行  
    没有试的不要乱说
    OK