아마 대부분의 공개 api는 json이나 xml 형태를 지원할 것입니다.


Open api를 이용하여 재밌는 것 좀 해볼까해서 XML 파서를 이용하기로 했습니다.


먼저 DocumentBuilder를 사용하여 XML을 Document 형태로 가져왔습니다.

잘 가져왔나 내용을 확인하기 위해서 그냥 Document Object를 출력해봤습니다.


Document doc = xxxxxxxxx;


System.out.println(doc);


그랬더니 원했던 결과가 나오지 않습니다.


구글링을 한 결과 아래와 같은 방법으로 XML 형태의 Document를 String으로 변환 할 수 있었습니다.


TransformerFactory tf = TransformerFactory.newInstance();

Transformer transformer = tf.newTransformer();

transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");

StringWriter writer = new StringWriter();

transformer.transform(new DOMSource(doc), new StreamResult(writer));

String output = writer.getBuffer().toString();

System.out.println(output);

요즘은 대부분 이클립스나 STS를 사용하여 자바를 개발하는 일이 잦습니다. (거의 필수 요소?)


개발을 하다보면 현재 개발환경과 인코딩이 다른 파일을 읽고 써야하는 경우가 매우 빈번하게 발생하는데


자바에서 인코딩이 다른 파일의 내용을 읽는 방법에 대해서 포스팅하겠습니다.


저는 이클립스 개발 환경에서 인코딩을 UTF-8로 세팅하였습니다.


이클립스에서 EUC-KR로 된 파일을 읽고자 합니다.


아래 소스를 붙여넣으면 됩니다.


import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.InputStreamReader;

 

 

public class ConvertTester {

 

       /**

        * @param args

        * @throws FileNotFoundException

        * @throws Exception

        */

       public static void main(String[] args) throws FileNotFoundException, Exception {

             String src = "www.com.001";

             File file = new File(src); 

             BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "EUC-KR")); 

             String line;         

             while ((line = br.readLine()) != null) { 

                 System.out.println(line);                

             }

             br.close();

            

       }

 

}

 


하나 만들어놨으니 라이브러리로 만들어봅시다.


사실 개인적인 라이브러리가 많이 있지만..공개용 라이브러리를 위해서 하나하나 정리하면서 라이브러리를 만들 생각입니다. (사실 매번 할 때마다 다시 찾아서 만들기 귀찮잖아요? ㅋㅋ )


이와 관련된 라이브러리는 내용을 참조하면 될 것 같습니다.


자바 파일 읽기

보통 자바는 이클립스 기반에서 개발을 많이 하게 된다.


필자도 윈도우나 맥 위에서 이클립스를 사용한다.


유연한 프로그램을 만들기 위해서는 프로퍼티 파일을 사용하는 것이 필요한데, 


필자의 경우에는 프로퍼티 파일에 특정 파일 경로는 거의 필수적으로 포함되어 있는 듯 하다.


이 때 윈도우에서 개발하고 리눅스에서 올리면 제대로 파일을 읽지 못하는 불상사가 발생한다.


물론 초보적인 실수겠지만,


태어나자마자 고수인 사람은 세상 어디에도 없을 것이다.


하나하나 찾아가고 정리해가면서 한단계 한단계 실력을 키우면 되는 것.


각설하고, 


File.separator를 사용하면 깔끔하게 해결된다.


사용방법은 아래와 같다.


만약 Data 밑에 Tweet.txt라는 파일을 원한다고 할 때, 


윈도우는 "Data\\"Tweet.txt"


리눅스는 "Data/Tweet.txt"


라고 썼었다.


그러나 자바에서는 이런 근심걱정 접어두고


"Data" + File.separator + "Tweet.txt"


라고 쓰면 된다.

+ Recent posts