2017년 6월 11일 일요일

[java]java io 인코딩관련 처리(.txt 파일)

자바로 .txt 파일을 읽고 쓰고 할때
한글의 경우 인코딩 문제가 생길수 있다.

다른건 없고 그냥 소스 통채로 올린다.



//파일 읽기


String path = "파일경로";

File file = new File(path);

if(file.isFile()){

   BufferedReader br = null;
   //InputStreamReader 객체 생성시 charSet 을 설정할수 있다.
   br = new BufferedReader(new InputStreamReader(new FileInputStream(path), "utf-8"));

   String s;
   //한줄씩 읽어서
   while ((s = br.readLine()) != null) {
   System.out.println(s);
   }
   br.close();
}

파일읅읽어 드릴때 utf-8 인코딩으로 읽어서 한줄씩 출력 하는 코드이다. 예외처리는 필수

//파일쓰기

예를들어 txt 파일에 log 라는 스트링 배열을 라인별로 작성하고 싶을때

BufferedWriter out = null;
//로그 시간을 기록하기위해 달력객체 사용
Calendar calendar = Calendar.getInstance();
java.util.Date date = calendar.getTime();
//현재 시간 변수 할당
String today = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));

try{

   String path= "파일경로";

   //FileOutputStream 객체 생성시 경로와 , true 값을 주면 이어서 기록한다.
   //OutputStreamWriter 객체 생성시 파라미터로 charSet 을 설정 할수 있다.
   out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path,true),      "utf-8"));

   //쓰고자하는 문자열리스트 null 처리
   if(!log.isEmpty()){
     
      //현재 시간을 먼저 기록한다.
      out.write("["+today+"]"); out.newLine();

      for(int i= 0; i < log.size(); i++){
         //리스트에 로그 null 체크
         if(log.get(i).trim().length() > 0){
            //기록한다
            out.write(log.get(i)); out.newLine();
}
      }
      //일자별 로그 구분을 위해 빈줄을 한칸 입력한다.
      out.newLine();
     
   }
}catch(Exception e){
   e.printStackTrace();
}finally{
   //BufferedWriter 를 닫는다.
   try {out.close();} catch (IOException e) {}
}



댓글 없음:

댓글 쓰기

[lunux]리눅스 폴더별 용량 확인

리눅스 폴더별 용량 확인 조회 하고자 하는 디렉토리 리스트가있는 경로로 이동후 du -h --max-depth=1