当前位置: 代码迷 >> J2SE >> JTextArea内容保存到Txt文件,换行有关问题
  详细解决方案

JTextArea内容保存到Txt文件,换行有关问题

热度:350   发布时间:2016-04-24 01:35:16.0
JTextArea内容保存到Txt文件,换行问题。
JTextArea内容保存到Txt文件没有换行。我试过把JTextArea内容的"\n"或"\r"用"\r\n"替换掉还是不行。
关键代码:
JFileChooser fileChooser=new JFileChooser("./");
int result=fileChooser.showSaveDialog(this);
if(result==fileChooser.APPROVE_OPTION){
File file=fileChooser.getSelectedFile();
try {
FileWriter fw=new FileWriter(file);
fw.write(txt.getText());//现在没有把txt.getText
  //的"\n"或"\r"用"\r\n"替换。
fw.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
/////////////////////////////////////////////////////////////////////////////////////////////
以下是我写的代码,帮我运行一下看看吧。

package mypackage;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;


public class TextTest extends JFrame implements ActionListener{
JTextArea txt=new JTextArea();
JMenuBar menuBar=new JMenuBar();
JMenu[] menu;
JMenuItem[][] menuItem;
Color color=Color.black;

public TextTest(){
this.setTitle("菜单使用");
this.setVisible(true);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
Container content=this.getContentPane();
content.setLayout(new BorderLayout());

String[] menuName={"文件","字体设置"};
String[][] ItemName={{"新建","打开","保存","关闭程序"},{"字体大小","字体颜色"}};

menuBar.setVisible(true);
menu=new JMenu[menuName.length];
for(int i=0;i<menuName.length;i++){
menu[i]=new JMenu(menuName[i]);
menuBar.add(menu[i]);
}
menuItem=new JMenuItem[ItemName.length][];
for(int i=0;i<ItemName.length;i++){
menuItem[i]=new JMenuItem[ItemName[i].length];
for(int j=0;j<ItemName[i].length;j++){
menuItem[i][j]=new JMenuItem(ItemName[i][j]);
if(i==0&&j==3){
menu[i].addSeparator();
}
menuItem[i][j].addActionListener(this);
menu[i].add(menuItem[i][j]);
}
}
this.setJMenuBar(menuBar);
content.add(new JScrollPane(txt),BorderLayout.CENTER);
this.setBounds(200,200,800,500);
}

public void actionPerformed(ActionEvent e){
if(e.getSource()==menuItem[0][0]){
txt.setText("");
}
else if(e.getSource()==menuItem[0][1]){
JFileChooser fileChooser=new JFileChooser("./");
int result=fileChooser.showOpenDialog(this);
if(result==fileChooser.APPROVE_OPTION){
File file=fileChooser.getSelectedFile();
try {
FileReader fr=new FileReader(file);
BufferedReader br=new BufferedReader(fr);
String str="",s="";
while((str=br.readLine())!=null){
s+=str+"\n";
}
br.close();
fr.close();
txt.setText(s);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
else if(e.getSource()==menuItem[0][2]){
JFileChooser fileChooser=new JFileChooser("./");
int result=fileChooser.showSaveDialog(this);
if(result==fileChooser.APPROVE_OPTION){
File file=fileChooser.getSelectedFile();
try {
FileWriter fw=new FileWriter(file);
fw.write(txt.getText());
fw.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
else if(e.getSource()==menuItem[0][3]){
this.dispose();
System.exit(0);
}
else if(e.getSource()==menuItem[1][0]){
int n;
String str=JOptionPane.showInputDialog("输入字体大小");