文件读写问题:一个令我困惑的问题
程序代码如下,
问题如下:
1、点击“open”按钮,打开一个文本文件,文本内容显示在txta(文本框)中,但是很奇怪,txta中只显示打开的文本文件内容的倒数第二行,这是为什么???
2、点击“保存”按钮,把txta(文本框)中的几行字符保存文本文件,假设是aa.txt,但是当我打开刚保存的aa.txt文件时,发现只能显示一行,回车换行以字符“■”代替,这是为什么?
以上两个问题该如何解决?望个路高手不吝赐教!!!小弟在此先感谢了!!!
祝各位通道中人:新年愉快!!!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
/**
* @author liyongjie
*
*/
public class JFileDialog {
/**
*
*/
JFrame frm=null;
JTextArea txta=null;
JScrollPane jsp=null;
JPanel btnp=null;
JButton openbtn=null,savebtn=null,exitbtn=null;
public JFileDialog() {
// TODO 自动生成构造函数存根
frm=new JFrame( "文件对话框测试! ");
Container cp=frm.getContentPane();
frm.setBounds(300,200,500,400);
txta=new JTextArea(16,10);
txta.setAutoscrolls(true);
jsp=new JScrollPane(txta);
openbtn=new JButton( "open ");
savebtn=new JButton( "save ");
exitbtn=new JButton( "exit ");
btnp=new JPanel();
btnp.add(openbtn);
btnp.add(savebtn);
btnp.add(exitbtn);
btnp.setBorder(BorderFactory.createTitledBorder( "open file "));
cp.add(jsp,BorderLayout.NORTH);
cp.add(btnp);
openbtn.addActionListener(new BtnLis());
savebtn.addActionListener(new BtnLis());
exitbtn.addActionListener(new BtnLis());
frm.setVisible(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
class BtnLis implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if((JButton)e.getSource()==openbtn)//打开文件
{
JFileChooser fileChooser=new JFileChooser();
int result=fileChooser.showOpenDialog(frm);
String currentFilePath;
String fileName;
if(result==JFileChooser.APPROVE_OPTION);
{
currentFilePath=fileChooser.getSelectedFile().getPath();//包括文件路径和文件全名
fileName=fileChooser.getSelectedFile().getName();
txta.setText( "you select file name is: "+fileName+ "\n "+ "the file path is: "+currentFilePath+ "\n ");
try
{
FileReader fileReader=new FileReader(currentFilePath);
BufferedReader buf=new BufferedReader(fileReader);
String str;
while((str=buf.readLine())!=null)
{
txta.append(buf.readLine());
}
fileReader.close();
buf.close();
}
catch(
IOException ioe)
{
txta.setText( "文件读取失败 ");
}
}
}
else if((JButton)e.getSource()==savebtn)//保存文件
{
File file;
JFileChooser fileChooser=new JFileChooser();
String filePath;
String fileName;
int result=fileChooser.showSaveDialog(frm);
if(result==JFileChooser.APPROVE_OPTION)
{
file=fileChooser.getSelectedFile();
filePath=fileChooser.getSelectedFile().getPath();
fileName=file.getName();
try
{
FileWriter fileWriter=new FileWriter(filePath,true);
fileWriter.write(txta.getText());