Projekt

Obecné

Profil

Stáhnout (4.4 KB) Statistiky
| Větev: | Revize:
1
package data;
2

    
3
import java.io.*;
4
import java.util.ArrayList;
5

    
6
/**
7
 *
8
 * Třída pro základní čtení a parsovani zdrojových souborů
9
 *
10
 * @author Daniel Stus, Marek Sobota, Lukas Scurko, Jan Jirman
11
 * @version 1.0
12
 */
13
public class DataLoader {
14

    
15
    //--------------------------------------- ATRIBUTY: -------------------------------------------------//
16
    //---------------------------------------------------------------------------------------------------//
17

    
18
    /** Jméno načteného souboru */
19
    private  String fileName;
20
    /** Hashmapa načtených dat */
21
    private ArrayList<String[]> loadedData = new ArrayList<>();
22
    /** Proměnná souboru */
23
    private File file;
24
    /** Proměnná root (JDF) složky */
25
    private File directory;
26

    
27
    //-------------------------------------- KONSTRUKTOR: -----------------------------------------------//
28
    //---------------------------------------------------------------------------------------------------//
29

    
30
    /**
31
     * Konstruktor DataLoaderu - Inicializuje slozku se zdrojovymi soubory pro cteni
32
     * @param directory
33
     */
34
    public DataLoader(File directory) {
35
        this.directory = directory;
36
        this.file = null;
37
        this.fileName = "";
38
    }
39

    
40
    //------------------------------------ METODY: Get() ------------------------------------------------//
41
    //---------------------------------------------------------------------------------------------------//
42

    
43
    /**
44
     * Vrací pole dat souboru
45
     * @return pole dat souboru
46
     */
47
    public ArrayList<String[]> getLoadedData() {
48
        return loadedData;
49
    }
50

    
51
    /**
52
     * Vraci hodnotu atributu fileName obsahujici jmeno souboru
53
     *
54
     * @return jméno souboru zpracovávaného metodami
55
     */
56
    public String getFileName() {
57
        return fileName;
58
    }
59

    
60
    /**
61
     * Vrací instanci souboru
62
     * @return intance souboru
63
     */
64
    public File getFile() {
65
        return file;
66
    }
67

    
68
    /**
69
     * Vrací instanci root (JDF) složky
70
     * @return intance root (JDF) složka
71
     */
72
    public File getDirectory(){
73
        return directory;
74
    }
75

    
76
    //----------------------------------------- METODY: -------------------------------------------------//
77
    //---------------------------------------------------------------------------------------------------//
78

    
79
    /**
80
     * Metoda načte všechna data ze souboru
81
     * @param fileName jméno souboru, ze kterého se bude číst
82
     */
83
    public ArrayList<String[]> loadData(String fileName){
84
        ArrayList<String[]> dataArrayList;
85
        String currLine;
86

    
87
        //soubor
88
        File file = new File(directory.getAbsolutePath()+"/"+fileName);
89
        if(!file.isFile()){
90
            System.out.println("Soubor neexistuje..");
91
            return null;
92
        }
93

    
94
        //nastavení atributů
95
        setAttributes(file, fileName);
96

    
97
        //čtení souboru
98
        try {
99
            BufferedReader BuffReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "Cp1250"));
100
            while((currLine = BuffReader.readLine()) != null) {
101
                //celý záznam - jedná řádka
102
                String[] record = parseLine(currLine);
103
                //přídání do arraylistu loadedData
104
                loadedData.add(record);
105
            }
106
            BuffReader.close();
107

    
108
        } catch (FileNotFoundException e) {
109
            e.printStackTrace();
110
        } catch (UnsupportedEncodingException e) {
111
            e.printStackTrace();
112
        } catch (IOException e) {
113
            e.printStackTrace();
114
        }
115
        return loadedData;
116
    }
117

    
118
    /**,
119
     * Nastavení zbývajících atributů pro DataLoader
120
     * @param file instance souboru
121
     * @param fileName název souborů
122
     */
123
    private void setAttributes(File file, String fileName){
124
        this.file = file;
125
        this.fileName = fileName;
126
    }
127

    
128
    /**
129
     * Zpracuje a vrátí jeden záznam (řádku) jako pole hodnot
130
     *
131
     * @param line řádka ke zpracování
132
     * @return pole se záznamem
133
     */
134
    public String[] parseLine(String line) {
135
        int startIndex = 1;
136
        int shift = 2;
137

    
138
        /*
139
         Odstraní ze záznamu úvodní uvozovku a konečnou uvozovku se středníkem
140
         příprava pro následující rozdělení záznamu pomocí metody split
141
         */
142
        String subString = line.substring(startIndex, line.length()-shift);
143

    
144
        String[] entry = subString.split("\",\"");
145

    
146
        return entry;
147
    }
148
}
(2-2/7)