오전에 적어둔거 컴퓨터 꺼져서 다 날라감..
package frame01;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class MyFrame2 extends JFrame {
//현재 열려 있는 File 객체의 참조값을 저장할 필드
File openedFile;
JTextArea ta;
public MyFrame2(String title) {
super(title);
setBounds(100, 100, 500, 500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//BorderLayout 으로 설정
setLayout(new BorderLayout());
//메뉴바
JMenuBar mb=new JMenuBar();
//메뉴
JMenu menu=new JMenu("File");
//메뉴 아이템
JMenuItem newItem=new JMenuItem("New");
JMenuItem openItem=new JMenuItem("Open");
JMenuItem saveItem=new JMenuItem("Save");
JMenuItem saveAsItem=new JMenuItem("Save As");
//메뉴에 메뉴 아이템을 순서대로 추가
menu.add(newItem);
menu.add(openItem);
menu.add(saveItem);
menu.add(saveAsItem);
//메뉴를 메뉴바에 추가
mb.add(menu);
//프레임의 메소드를 이용해서 메뉴바를 추가하기
setJMenuBar(mb);
//UI 를 감쌀 페널
JPanel p1=new JPanel();
JTextField inputText=new JTextField(20);
JButton saveBtn=new JButton("저장");
//페널에 UI 를 추가
p1.add(inputText);
p1.add(saveBtn);
//JTextArea 객체를 생성해서 배치 (참조값을 필드에 저장)
ta=new JTextArea();
add(ta, BorderLayout.CENTER);
//Open 을 눌렀을때 실행할 리스너 등록
openItem.addActionListener((e2)->{
//파일을 선택할수 있는 객체
JFileChooser fc=new JFileChooser("C:/acorn202304/myFolder");
int result=fc.showOpenDialog(this);
if(result == JFileChooser.APPROVE_OPTION) {
//선택한 파일을 제어 할수 있는 File 객체가 리턴된다.
openedFile = fc.getSelectedFile();
//선택한 파일의 경로
String path = openedFile.getAbsolutePath();
//프레임의 제목 선택한 파일의 경로를 저장한다.
this.setTitle(path);
//try 블럭 안에서 사용할 변수를 미리 만들어 놓는다.
FileReader fr=null;
BufferedReader br=null;
try {
//참조값은 try 블럭 안에서 new 해서 넣어준다.
fr=new FileReader(openedFile);
br=new BufferedReader(fr);
//반복문 돌면서
while(true) {
//문자열을 한줄씩 읽어낸다.
String line=br.readLine();
//만일 더이상 읽을 문자열이 없다면
if(line==null)break;// 반복문 탈출
//읽어낸 문자열을 JTextArea 에 출력하기
ta.append(line); //개행기호는 제외된 상태로 읽어내기 때문에
ta.append("\r\n"); //개행기호를 따로 추가해 준다.
}
} catch (IOException e) {
e.printStackTrace();
}finally {
//사용했던 스트림은 닫아주는것이 좋다 (열렸던 순서의 역순으로...)
try {
//close() 를 호출할때도 null 에 주의해서 호출해야 한다.
if(br!=null)br.close();
if(fr!=null)fr.close();
}catch(Exception e) {}
}
}
});
//Save를 눌렀을때 실행할 리스너 등록
saveItem.addActionListener((e2)->{
//만일 열려진 파일이 없다면
if(openedFile == null) {
JOptionPane.showMessageDialog(this, "파일을 먼저 열어주세요!");
return; //메소드를 여기서 끝내라
}
//입력한 내용을 파일에 저장하기
saveToFile();
});
saveAsItem.addActionListener((e2)->{
JFileChooser fc = new JFileChooser("C:/acorn202304/myFolder");
int result = fc.showSaveDialog(this);
if(result == JFileChooser.APPROVE_OPTION) {
}
});
setVisible(true);
}
//파일에 저장하는 메소드
public void saveToFile() {
//JTextArea 에 입력한 문자열 읽어오기
String content = ta.getText();
FileWriter fw = null;
BufferedWriter bw = null;
try {
fw = new FileWriter(openedFile);
bw = new BufferedWriter(fw);
bw.write(content);
bw.flush();
JOptionPane.showMessageDialog(this, " 저장 완료");
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(bw!=null)bw.close();
if(fw!=null)bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new MyFrame2("나의 프레임");
}
}
1.jpg 는 100,000개의 byte로 구성되어있는데 이걸 메모리를 통해서 입출력을 해보는 예제를 할 것이다.
package test.main;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/*
* file copy 연습
*/
public class MainClass09 {
public static void main(String[] args) {
//필요한 참조값을 담을 지역 변수를 미리 만든다.
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("C:/acorn202304/myFolder/1.jpg");
fos = new FileOutputStream("C:\\acorn202304\\myFolder\\copied2.jpg");
//byte 알갱이를 읽어낼 배열을 미리 준비하기
byte[] buffer = new byte[1024];
//반복문 돌면서
while(true) {
//byte[]배열을 전달해서 byte 알갱이를 한번에 1024 개씩 읽어 들인다.
int readedCount = fis.read(buffer);
System.out.println(readedCount);
if(readedCount == -1)break;//더이상 읽을게 없다면 반복문 탈출
//byte[]배열에 저장된 byte 알갱이를 0번 인덱스로 부터 읽은 갯수만큼 출력하기
fos.write(buffer, 0, readedCount);
fos.flush();
}
System.out.println("파일을 copy 했습니다.");
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
if(fos!=null)fos.close();
if(fis!=null)fis.close();
}catch(Exception e) {}
}
}
}
파일을 카피해보았다.
JDBC란?
JAVA
DATA
BASE
CONNECTIVITY
자바와 오라클을 연결할때는 오라클에서 연결해 줘야 한다.
이렇게 드라이버를 추가하고 Apply and close를 눌러서 적용해준다.
JDBC ( Java DataBase Connenctivity)
DataBase 에 연결해서 SELECT, INSERT, UPDATE, DELETE 작업하기
Oracle 에 연결하기 위해서는 드라이버 클래스가 들어있는 ojdbc6.jar 파일을
사용할 수 있도록 설정해야 한다.
프로젝트에 마우스 우클릭 => Build Path => Configure Build Path => Librarys 탭 선택
=> classpath 선택 => 우측 Add External jar 버튼을 누른 후 => ojdbc6.jar 파일을 찾은 다음=>apply
'수업내용' 카테고리의 다른 글
20230516 수업내용🤦♂️🤦♂️🤦♂️🤦♂️ (0) | 2023.05.16 |
---|---|
20230515 수업내용🙌🙌🙌🙌 (0) | 2023.05.15 |
20230511 수업내용🤦♂️🤦♂️ (1) | 2023.05.11 |
20230510 수업내용🤦♂️🤦♂️ (0) | 2023.05.10 |
2030509 수업내용😶🌫️😶🌫️ (0) | 2023.05.09 |
댓글