您的位置:首页 > 编程语言

J2SE之 记事本相关功能实现——源代码

2012-10-21 08:53 351 查看
NotePaid.java

package notepaid;

import java.awt.FileDialog;

importjava.awt.Frame;

importjava.awt.Menu;

importjava.awt.MenuBar;

importjava.awt.MenuItem;

importjava.awt.TextArea;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

public class NotePaid extends Frameimplements ActionListener{

MenuBarmb ;

Menufile,help;

MenuItemmiOpen,miSave,miSaveAs,miExist;

FileDialogfd_Open,fd_Save,fd_SaveAs;

TextArea ta;

String path = "";

publicNotePaid(){

Frame f = new Frame("记事本");

mb = new MenuBar();

file = new Menu("文件");

help = new Menu("帮助");

miOpen = new MenuItem("打开");

miSave = new MenuItem("保存");

miSaveAs = new MenuItem("另存为");

miExist = new MenuItem("退出");

ta = new TextArea();

file.add(miOpen);

file.add(miSave);

file.add(miSaveAs);

file.add(miExist);

mb.add(file);

mb.add(help);

miOpen.addActionListener(this);

miSave.addActionListener(this);

miSaveAs.addActionListener(this);

miExist.addActionListener(this);

fd_Open= new FileDialog(this,"打开",FileDialog.LOAD);

fd_Save = new FileDialog(this, "保存", FileDialog.SAVE);

fd_SaveAs = new FileDialog(this, "另存为", FileDialog.SAVE);

this.addWindowListener(newWindowAdapter(){

@Override

publicvoid windowClosing(WindowEvent e) {

System.exit(0);

}

});

this.setMenuBar(mb);

this.add(ta);

this.setBounds(400,0,600,750);

this.setVisible(true);

}

publicstatic void main(String[] args) {

newNotePaid();

}

@Override

publicvoid actionPerformed(ActionEvent e) {

Stringname = e.getActionCommand();

if(name.equals("打开")){

fd_Open.setVisible(true);

getReadPath(fd_Open);

}elseif(name.equals("保存")){

/*

String d = fd_Save.getDirectory();

String f = fd_Save.getFile();

path = d+f;*/

if((path== null) ||(path.equals(""))){

fd_Save.setVisible(true);

getWriteSaveAsPath(fd_Save);

}else{

getWriteSavePath(fd_Save);

}

}elseif(name.equals("另存为")){

fd_SaveAs.setVisible(true);

getWriteSaveAsPath(fd_SaveAs);

}

else if (name.equals("退出")){

System.exit(0);

}

}

public void openFile(String path){

//再打开文件之前将记事本的内容清空。

ta.setText("");

FileReader fr = null;

BufferedReaderbr = null;

try {

fr= new FileReader(path);

br = new BufferedReader(fr);

Stringcontent = null;

while((content = br.readLine())!=null) {

ta.append(content);

//每读出一行就向该行的末尾处追加一个换行符。

ta.append("\r\n");

}

}catch (IOException e) {

e.printStackTrace();

}finally{

if(br!= null){

try{

br.close();

}catch (IOException e) {

e.printStackTrace();

}

}

}

}

public void saveFile(String path){

FileWriter fw = null;

BufferedWriter bw = null;

try {

fw= new FileWriter(path);

bw= new BufferedWriter(fw);

Stringcontent = ta.getText();

bw.write(content);

bw.flush();

}catch (IOException e) {

e.printStackTrace();

}finally{

if(bw!=null){

try{

bw.close();

}catch (IOException e) {

e.printStackTrace();

}

}

}

}

public void saveFileAs(String path){

FileWriter fw = null;

BufferedWriter bw = null;

try {

fw = new FileWriter(path);

bw = new BufferedWriter(fw);

String content = ta.getText();

bw.write(content);

bw.flush();

} catch (IOException e) {

e.printStackTrace();

}finally{

if(bw!=null){

try {

bw.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

public void getReadPath(FileDialog fd){

String d = fd.getDirectory();

String f = fd.getFile();

if((d!=null &&!d.equals(""))&&(f!=null &&!f.equals(""))){

path = d+f;

openFile(path);

}

}

public void getWriteSaveAsPath(FileDialog fd){

String d = fd.getDirectory();

String f = fd.getFile();

if((d!=null && !d.equals(""))&&(f!=null&& !f.equals(""))){

path = d+f;

saveFileAs(path);

}

}

public void getWriteSavePath(FileDialog fd){

saveFile(path);

}

}




好了,到这里,关于流的处理中的字符流部分已经介绍完了,之后会为您介绍关于字节流的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: