[ 메모장 프로그램 ]
● 내 용: 텍스트 문서 파일을 이용하여 텍스트 문서를 읽고 쓰는 프로그램
● 입출력 방법: Frame 클래스 사용(윈도우창)
● 핵 심: AWT 사용, File 입출력 사용
[ File Dialog 사용법 ]
FileDialog file = new FileDialog(this, "Open", 0);
file.show();
String path = file.getDirectory();
String fileName = file.getFile();
[ File 입력 방법 ]
BufferedReader in = new BufferedReader(new FileReader(path + fileName));
while(in.ready()) {
text += in.readLine() + "\n";
}
in.close();
[ File 출력 방법 ]
BufferedWriter out = new BufferedWriter(new FileWriter(path + fileName));out.write(text, 0, text.length());
out.flush();
out.close();
[ 소스코드 ]
/*
* 제 목 : 메모장
* 작성일 : 2009. 01. 27
* Text문서를 읽고 쓰는 프로그램(열기하고 저장만 되는 간단한 프로그램)
*/
import java.io.*;
import java.awt.*;
import java.awt.event.*;
public class Simulator extends Frame implements ActionListener {
MenuBar mb; // 메뉴바 클래스
TextArea textarea;
MenuItem fileNew, fileOpen, fileSave, fileExit; // 메뉴 아이템
public Simulator() {
super("Simulator"); // 메뉴바를 담을 Frame 클래스 생성
mb = new MenuBar(); // 메뉴바 생성
setMenuBar(mb); // Frame에 메뉴바를 추가
/*
* file에 대한 메뉴 클래스
*/
Menu file = new Menu("파일");
fileNew = new MenuItem("새 글");
fileNew.addActionListener(this);
MenuShortcut N = new MenuShortcut(KeyEvent.VK_N, false);
fileNew.setShortcut(N);
fileOpen = new MenuItem("열기");
fileOpen.addActionListener(this);
MenuShortcut O = new MenuShortcut(KeyEvent.VK_O, false);
fileOpen.setShortcut(O);
fileSave = new MenuItem("저장하기");
fileSave.addActionListener(this);
MenuShortcut S = new MenuShortcut(KeyEvent.VK_S, false);
fileSave.setShortcut(S);
fileExit = new MenuItem("종료");
fileExit.addActionListener(this);
MenuShortcut x = new MenuShortcut(KeyEvent.VK_X, true);
fileExit.setShortcut(x);
file.add(fileNew);
file.add(fileOpen);
file.add(fileSave);
file.addSeparator();
file.add(fileExit);
/*
* help에 대한 메뉴 클래스
*/
Menu help = new Menu("도움말");
mb.add(file);
mb.add(help);
mb.setHelpMenu(help);
textarea = new TextArea();
add("Center", textarea);
/*
* 윈도우 종료 메소드
*/
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent evt){
dispose();
System.exit(0);
}
});
//pack();
setBounds(10,10, 500,250);
setVisible(true);
}
/*
* 메뉴창을 선택했을 경우 실행되는 소스
*/
public void actionPerformed(ActionEvent e){
String command = e.getActionCommand();
if( command.equals("열기") ) {
/* fileDialog 창 활성화 */
FileDialog file = new FileDialog(this, "Open", 0);
file.show();
String path = file.getDirectory();
String fileName = file.getFile();
String text = "";
textarea.setText(""); // 텍스트 파일을 열기전 TextArea 초기화
try {
BufferedReader in = new BufferedReader(new FileReader(path + fileName));
while(in.ready()) {
text += in.readLine() + "\n";
}
in.close();
} catch(IOException except){}
textarea.append(text);
}else if( command.equals("저장하기") ) {
String text = textarea.getText();
FileDialog file = new FileDialog(this, "Save", 1);
file.show();
String path = file.getDirectory();
String fileName = file.getFile();
try
{
BufferedWriter out = new BufferedWriter(new FileWriter(path + fileName));
out.write(text, 0, text.length());
out.flush();
out.close();
} catch(IOException except) {}
}else if( command.equals("종료") ){
System.exit(0);
}else if( command.equals("새 글")){
textarea.setText("");
}
}
public static void main(String args[]) {
new Simulator();
}
}
[ 결 과 ]
'자바(Java) > JAVA 2SE' 카테고리의 다른 글
java.util.Timer - 쓰레드 타이머 (0) | 2009.02.01 |
---|---|
전화번호부 프로그램 (0) | 2009.02.01 |
java.net.InetAddress - IP주소 (0) | 2009.01.23 |
java.lang.reflect 패키지 - 클래스와 객체의 정보 취득 (0) | 2009.01.22 |
java.util.Vector - 객체 가변 배열 (0) | 2009.01.14 |