2016년 8월 21일 일요일

java 파일 .txt 작성 및 폴더, 파일 관리 jUnit

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

import org.junit.After;
import org.junit.Test;

public class ListFilesUtilTest {
    /**
     * 디렉토리에 존재하는 폴더와 파일들의 리스트
     * @param directoryName
     */
    public void listFilesAndFolders(String directoryName){
        File directory = new File(directoryName);
        //get all the files from a directory
        File[] fList = directory.listFiles();
        for (File file : fList){
            System.out.println(file.getName());
        }
    }
    /**
     * 디렉토리에 존재하는 모든 파일 리스트
     * @param directoryName
     */
    public void listFiles(String directoryName){
        File directory = new File(directoryName);
        //get all the files from a directory
        File[] fList = directory.listFiles();
        for (File file : fList){
            if (file.isFile()){
                System.out.println(file.getName());
            }
        }
    }
    /**
     * 디렉토리에 존재하는 모든 폴더 리스트
     * @param directoryName
     */
    public void listFolders(String directoryName){
        File directory = new File(directoryName);
        //get all the files from a directory
        File[] fList = directory.listFiles();
        for (File file : fList){
            if (file.isDirectory()){
                System.out.println(file.getName());
            }
        }
    }
    /**
     * 디렉토리 하위의 파일들과 하위 디렉토리 내에 존재하는 모든 파일들의 리스트
     * @param directoryName
     */
    public void listFilesAndFilesSubDirectories(String directoryName){
        File directory = new File(directoryName);
        //get all the files from a directory
        File[] fList = directory.listFiles();
        for (File file : fList){
            if (file.isFile()){
                System.out.println(file.getAbsolutePath());
            } else if (file.isDirectory()){
                listFilesAndFilesSubDirectories(file.getAbsolutePath());
            }
        }
    }
    public void readText() {
   
            File file = new File("/Users/yisang/Documents/dev/spring/upload/filename.txt");
            StringBuffer contents = new StringBuffer();
            BufferedReader reader = null;
            try {
                reader = new BufferedReader(new FileReader(file));
                String text = null;
                // repeat until all lines is read
                while ((text = reader.readLine()) != null) {
                    contents.append(text)
                        .append(System.getProperty(
                            "line.separator"));
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (reader != null) {
                        reader.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
           
            // show file contents here
            System.out.println(contents.toString());
       
    }
  //파일을 존재여부를 확인하는 메소드
    public static Boolean fileIsLive(String isLivefile) {
     File f1 = new File(isLivefile);
   
     if(f1.exists())
     {
      return true;
     }else
     {
      return false;
     }
    }
   
    //파일을 생성하는 메소드
    public static void fileMake(String makeFileName) {
    File f1 = new File(makeFileName);
    try {
    f1.createNewFile();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
   
    //파일을 삭제하는 메소드
    public static void fileDelete(String deleteFileName) {
    File I = new File(deleteFileName);
    I.delete();
    }
   
    //파일을 복사하는 메소드
    public static void fileCopy(String inFileName, String outFileName) {
     try {
      FileInputStream fis = new FileInputStream(inFileName);
      FileOutputStream fos = new FileOutputStream(outFileName);
     
      int data = 0;
      while((data=fis.read())!=-1) {
       fos.write(data);
      }
      fis.close();
      fos.close();
     
     } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
   
    //파일을 이동하는 메소드
    public static void fileMove(String inFileName, String outFileName) {
     try {
      FileInputStream fis = new FileInputStream(inFileName);
      FileOutputStream fos = new FileOutputStream(outFileName);
     
      int data = 0;
      while((data=fis.read())!=-1) {
       fos.write(data);
      }
      fis.close();
      fos.close();
     
      //복사한뒤 원본파일을 삭제함
      fileDelete(inFileName);
     
     } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
   
    //디렉토리의 파일 리스트를 읽는 메소드
    public static List<File> getDirFileList(String dirPath)
    {
     // 디렉토리 파일 리스트
     List<File> dirFileList = null;
   
     // 파일 목록을 요청한 디렉토리를 가지고 파일 객체를 생성함
     File dir = new File(dirPath);
   
     // 디렉토리가 존재한다면
     if (dir.exists())
     {
      // 파일 목록을 구함
      File[] files = dir.listFiles();
     
      // 파일 배열을 파일 리스트로 변화함
      dirFileList = Arrays.asList(files);
     }
   
     return dirFileList;
    }
   
   
    @Test
    public void main (){
        ListFilesUtilTest listFilesUtil = new ListFilesUtilTest();
        final String directoryLinuxMac ="/Users/yisang/Documents/dev/spring/upload";
        //Windows directory example
        final String directoryWindows ="C://test";
        listFilesUtil.listFiles(directoryLinuxMac);
    }
   
    @After
    public void writeTxt() {
try {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();

String content = "[" + dateFormat.format(date) + "] hey hey hey 안녕하니? /n ㅁㄴㅇㄹㅂ135-061243#@$!#$%@$^@$%^";

File file = new File("/Users/yisang/Documents/dev/spring/upload/filename.txt");

FileWriter fw = new FileWriter(file.getAbsoluteFile(), true);

if (!file.exists()) {
file.createNewFile();
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
}else{


PrintWriter print_line = new PrintWriter(fw);
print_line.printf("%s" + "%n", content);
print_line.flush();
print_line.close();


// 파일의 쓰기/읽기 권한 체크
          if(file.canWrite()) System.out.println(file.getName() + "은 쓸 수 있습니다.");
          if(file.canRead()) System.out.println(file.getName()+ "은 읽을 수 있습니다.");
             
                // 객체의 파일, 폴더 여부 체크
                if(file.isFile()){
                    System.out.println(file.getName() + "은 파일입니다.");
                }else if(file.isDirectory()){
                    System.out.println(file.getName() + "은 폴더입니다.");
                }else{
                    System.out.println(file.getName() + "은 파일도 폴더도 아닙니다.");
                }
}

System.out.println("Done");

readText();
           
} catch (IOException e) {
e.printStackTrace();
}
}
}