티스토리 뷰

Programming?/JAVA

Java I/O 파일 복사

Erlka 2012. 8. 1. 15:31
//FileCopy
/*
 * 업로드, 다운로드
 * 
 */


package com.io;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import java.io.*;
public class FileCopy extends JFrame implements ActionListener{

    JTextField tf;
    JButton b;
    
    public FileCopy()
    {
        tf = new JTextField(30);
        b=new JButton("찾기");
        
        setLayout(new FlowLayout());
        add(tf);
        add(b);
        
        setSize(450,200);
        setVisible(true);
        
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        b.addActionListener(this);
        
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new FileCopy();
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if(e.getSource()==b)
        {
            JFileChooser jc=new JFileChooser();
            jc.showOpenDialog(this); // 열기
            //jc.showOpenDialog(this); // 저장하기
            
            if(jc.showOpenDialog(this)==jc.APPROVE_OPTION) // 파일 열기 버튼 눌렀을경우
            {
                File f= jc.getSelectedFile(); // 선택된 파일을 가져옴
                tf.setText(f.getPath()); // 경로명 가져옴
                fileSave(f,"c:\\upload",f.getName());
            }
        }
    }
    
    //파일 복사 프로그램
    public void fileSave(File file,String path,String name)
    {
        try
        {
            File f= new File(path); // 디렉토리의 정보
            if(!f.exists()) // 폴더가 존재 하지 않는다면
            {
                f.mkdir(); // upload폴더 생성
            }
            
            //파일 복사
            String filePath = path+"\\"+name;
            
            //파일 읽기
            FileInputStream fis = new FileInputStream(file);
            //파일 쓰기
            FileOutputStream fos = new FileOutputStream(filePath);
            
            int i=0// 파일 읽은 바이트 수를 체크하기 위한 변수
            byte[] buffer=new byte[1024];
            
            
            while((i=fis.read(buffer,0,1024))!=-1)//-1 = EOF(End of File)
            {
                fos.write(buffer, 0, i); // 읽은 개수만큼 출력
            }
            
            fis.close();
            fos.close();
            
        }catch(Exception ex){}
    }

}

 

 

복사할 프로그램을 찾기 버튼으로 불러오면

 

 

C드라이브 안의 upload 폴더내에 선택한 파일이 복사됨

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함