csv파일 읽기

Posted by 백창
2014.09.27 12:08 개발/Java


 개요


다음 소스는 필요에 따라 csv 파일의 헤더만 읽기위해 사용되었다.

 csv파일 전체를 읽기위해서는 



위 소스 부분을 다음과 같이 바꾸어야 한다.




 소스


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
 
 
public class readFile {
    
    /**
     * Header 받아오기
     * */
    @SuppressWarnings("null")
    public ArrayList<String> readHeader(String filePath) throws IOException{
 
        ArrayList<String> ret = new ArrayList<String>();
        File csv = new File(filePath);
        BufferedReader br = new BufferedReader(new FileReader(csv));
        
        String line = "";
        line = br.readLine();
        
        String[] token = line.split(",");
        
        for(String output:token){
            System.out.println(output);
            ret.add(output);
        }
        
        br.close();
        
        return ret;
    }
    
    /**
     * \을 /으로 변환
     * */
    public String convertDash(String fileName){
        String convertFileName="";
        
        convertFileName = fileName.replace('\\','/');
        return convertFileName;
    }
}




 결과



'개발 > Java' 카테고리의 다른 글

FTP - Client 만들기  (0) 2014.11.28
FTP - server 만들기  (0) 2014.11.28
csv파일 읽기  (0) 2014.09.27
JDOM을 이용한 XML 생성  (0) 2014.09.14
JDOM을 이용한 XML 파싱  (0) 2014.09.14
현재 시간 구하기  (0) 2014.09.14
이 댓글을 비밀 댓글로

JDOM을 이용한 XML 생성

Posted by 백창
2014.09.14 22:41 개발/Java


 목적


 이전 포스팅에서 출력한 XML 파일에 새로운 정보를 더해 재조립해서 xml형식으로 저장한다.



 Source


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
 
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
import org.springframework.ui.ModelMap;
 
public class xmlTest {
    public void testAddName(ModelMap model , String name) throws JDOMException, IOException{
        
        //파일경로
        String filePath="xmlTest.xml";
        String newFilePath = "madeXmlTest.xml";
        
        File file = new File(filePath);
        
        FileInputStream input = new FileInputStream(file);
        SAXBuilder builder = new SAXBuilder();
        Document doc = builder.build(input);
        
        //Root Element
        Element xmlRoot = doc.getRootElement();
        
        //Child Element
        List l_list = xmlRoot.getChildren();
        Element basic = (Element) l_list.get(0);
        
        //New Element
        Element addName = new Element("name");
        addName.setText(name);
        
        //Added Child Element
        basic.addContent(addName);
        
        //FILE IO
        FileWriter writer = new FileWriter(newFilePath);
        
        XMLOutputter outputter = new XMLOutputter();
        try{
            outputter.setFormat(Format.getPrettyFormat());  //개행 등 을 처리
            
            /**
             * 한글 변환! 중요
             * */
            Format fm = outputter.getFormat();
            fm.setEncoding("EUC-KR");
            outputter.setFormat(fm);
            
            outputter.output(doc, writer);
            
            writer.close();
        }catch(Exception e){
            System.err.println(e);
        }
        
    }
}


 Test


이전 XML 파일



새로 생성된 XML 파일



name이라는 부분이 새로 생성되었다.



 힘들었던 부분


XML을 생성하는 경우 인코딩에서 문제가 발생하였다. 


UTF-8 방식으로 저장되는데 한글이 깨져서 출력되는 문제가 발생하여 다음과 같이 해결하였다.



'개발 > Java' 카테고리의 다른 글

FTP - Client 만들기  (0) 2014.11.28
FTP - server 만들기  (0) 2014.11.28
csv파일 읽기  (0) 2014.09.27
JDOM을 이용한 XML 생성  (0) 2014.09.14
JDOM을 이용한 XML 파싱  (0) 2014.09.14
현재 시간 구하기  (0) 2014.09.14
이 댓글을 비밀 댓글로

JDOM을 이용한 XML 파싱

Posted by 백창
2014.09.14 22:31 개발/Java


 JDOM이란?


 자바에서 제공하는 XML 데이터를 가공하기 위해 제공되는 라이브러리 이다. SAX(Simple API for XML)과 DOM의 장점만을 골라 만든 클래스와 인터페이스를 제공한다.



 Source


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
 
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
import org.springframework.ui.ModelMap;
 
public class xmlTest {
    public void test(ModelMap model) throws JDOMException, IOException {
        
        //파일 경로
        String filePath="xmlTest.xml";
        
        File file = new File(filePath);
        
        FileInputStream input = new FileInputStream(file);
        SAXBuilder builder = new SAXBuilder();
        Document doc = builder.build(input);
        
        //Root Element
        Element xmlRoot = doc.getRootElement();
        
        //Child Element
        List l_list = xmlRoot.getChildren();
        Element e_list = (Element) l_list.get(0);
        
        List l_basic = e_list.getChildren();
        
        //Output
        for(int i=0; i<l_basic.size(); i++) {
            Element e_basic = (Element) l_basic.get(i);
            System.out.println("e_basic.getName() : "+e_basic.getName());
            System.out.println("e_basic.getText() : "+e_basic.getText());
            
            model.put(e_basic.getName(), e_basic.getText());
        }
    }
}



 출력할 XML File





 Test




'개발 > Java' 카테고리의 다른 글

FTP - Client 만들기  (0) 2014.11.28
FTP - server 만들기  (0) 2014.11.28
csv파일 읽기  (0) 2014.09.27
JDOM을 이용한 XML 생성  (0) 2014.09.14
JDOM을 이용한 XML 파싱  (0) 2014.09.14
현재 시간 구하기  (0) 2014.09.14
이 댓글을 비밀 댓글로