{"id":240,"date":"2014-07-31T12:33:20","date_gmt":"2014-07-31T03:33:20","guid":{"rendered":"http:\/\/kei0310.info\/?p=240"},"modified":"2014-10-17T11:42:18","modified_gmt":"2014-10-17T02:42:18","slug":"post-240","status":"publish","type":"post","link":"http:\/\/kei0310.info\/?p=240","title":{"rendered":"[Java] CSV\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\u65b9\u6cd5"},"content":{"rendered":"<p>\u3053\u3093\u306b\u3061\u306f\u3001kei0310\u3067\u3059\u3002<\/p>\n<p>CSV\u30d5\u30a1\u30a4\u30eb\u3092Java\u306b\u53d6\u308a\u8fbc\u3080\u65b9\u6cd5\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<p>\u3068\u306f\u3044\u3063\u3066\u3082\u3001\u666e\u901a\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u3066\u30ab\u30f3\u30de\u533a\u5207\u308a\u3067List\u306b\u683c\u7d0d\u3059\u308b\u3060\u3051\u3067\u3059\u306e\u3067\u3001<br \/>\n\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u307f\u305f\u3044\u306b\u6271\u3063\u3066\u3044\u305f\u3060\u304f\u611f\u3058\u306b\u306a\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u4eca\u56de\u306f\u3044\u304d\u306a\u308a\u30d7\u30ed\u30b0\u30e9\u30e0\u304b\u3089\u3002<br \/>\n\u25cfCSVReader\u30af\u30e9\u30b9<\/p>\n<h6>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npackage test.csv;\r\n\r\nimport java.io.BufferedReader;\r\nimport java.io.File;\r\nimport java.io.FileNotFoundException;\r\nimport java.io.FileReader;\r\nimport java.io.IOException;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\nimport java.util.StringTokenizer;\r\n\r\n\/**\r\n * CSV\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080\u30af\u30e9\u30b9\r\n * @author kei0310\r\n *\r\n *\/\r\npublic class CSVReader {\r\n\r\n\tprivate String fileName;\r\n\tprivate Integer num;\r\n\r\n\t\/**\r\n\t * \u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\r\n\t * @param fileName \u30d5\u30a1\u30a4\u30eb\u540d\r\n\t * @param num \u8aad\u307f\u8fbc\u307f\u884c\u6570(0\u306e\u5834\u5408\u5168\u91cf\u8aad\u307f\u8fbc\u307f)\r\n\t *\/\r\n\tpublic CSVReader(String fileName, int num){\r\n\r\n\t\t\/\/ \u30d5\u30a3\u30fc\u30eb\u30c9\u8a2d\u5b9a\r\n\t\tthis.fileName = fileName;\r\n\t\tthis.num = num;\r\n\t}\r\n\r\n\t\/**\r\n\t * CSV\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\u3092\u5b9f\u884c\u3059\u308b\r\n\t * @return\r\n\t *\/\r\n\tpublic List&lt;List&lt;String&gt;&gt; read() {\r\n\r\n\t\t\/\/ \u5165\u529b\u30c1\u30a7\u30c3\u30af\r\n\t\tif(this.fileName == null || this.num == null){\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\t\/\/ \u8fd4\u5374\u7528\u30ea\u30b9\u30c8\u7bb1\u4f5c\u6210\r\n\t\tList&lt;List&lt;String&gt;&gt; ret = new ArrayList&lt;List&lt;String&gt;&gt;();\r\n\r\n\t\tFile csv = new File(fileName); \/\/ CSV\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\r\n\r\n\t\tBufferedReader br = null;\r\n\r\n\t\ttry {\r\n\t\t\t\/\/ \u30d5\u30a1\u30a4\u30eb\u30aa\u30fc\u30d7\u30f3\r\n\t\t\tbr = new BufferedReader(new FileReader(csv));\r\n\r\n\t\t\t\/\/ num\u884c\u8aad\u307f\u8fbc\u3080\uff080\u306e\u5834\u5408\u306f\u5168\u884c\uff09\r\n\t\t\tString line = &quot;&quot;;\r\n\t\t\tint idx = 0;\r\n\t\t\twhile ((line = br.readLine()) != null) {\r\n\r\n\t\t\t\t\/\/ 1\u884c\u3092\u683c\u7d0d\u3059\u308b\u7bb1\u4f5c\u6210\r\n\t\t\t\tList&lt;String&gt; tmpList = new ArrayList&lt;String&gt;();\r\n\r\n\t\t\t\t\/\/ \u6587\u5b57\u5217index\r\n\t\t\t\tint idxFrom = 0;\r\n\t\t\t\tint idxTo = 0;\r\n\t\t\t\t\/\/ \u6587\u5b57\u5217\u9577\r\n\t\t\t\twhile (true){\r\n\r\n\t\t\t\t\t\/\/ \u6700\u7d42\u9805\u76ee\u3092\u53d6\u5f97\u5f8c\u306f\u7d42\u4e86\r\n\t\t\t\t\tif(idxFrom &gt; line.length()){\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\/\/ \u6b21\u306e\u30bb\u30d1\u30ec\u30fc\u30bf\u4f4d\u7f6e\u3092\u53d6\u5f97\r\n\t\t\t\t\tidxTo = line.indexOf(&quot;,&quot;, idxFrom);\r\n\r\n\t\t\t\t\t\/\/ \u30bb\u30d1\u30ec\u30fc\u30bf\u304c\u767a\u898b\u3067\u304d\u306a\u3044\u5834\u5408\u306f\u6700\u7d42\u9805\u76ee\u3092\u53d6\u5f97\r\n\t\t\t\t\tif( idxTo == -1 ){\r\n\t\t\t\t\t\tidxTo = line.length();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\/\/ \u6587\u5b57\u5217\u53d6\u5f97\r\n\t\t\t\t\tString word = line.substring(idxFrom, idxTo);\r\n\r\n\t\t\t\t\t\/\/ \u6587\u5b57\u5217\u3092\u683c\u7d0d\r\n\t\t\t\t\ttmpList.add(word);\r\n\r\n\t\t\t\t\t\/\/ \u691c\u7d22\u958b\u59cb\u4f4d\u7f6e\u3092\u66f4\u65b0\r\n\t\t\t\t\tidxFrom = idxTo + 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t\/\/ \u8fd4\u5374\u7528\u30ea\u30b9\u30c8\u306b1\u884c\u30c7\u30fc\u30bf\u3092\u683c\u7d0d\r\n\t\t\t\tret.add(tmpList);\r\n\r\n\t\t\t\t\/\/ \u30ab\u30a6\u30f3\u30bf\r\n\t\t\t\tif(idx % 1000 == 0){\r\n\t\t\t\t\tSystem.out.println(&quot;\u5165\u529b: &quot; + idx + &quot; \u4ef6&quot;);\r\n\t\t\t\t}\r\n\t\t\t\tidx++;\r\n\r\n\t\t\t\t\/\/ num\u3092\u8d85\u3048\u305f\u3089\u8aad\u307f\u8fbc\u307f\u7d42\u4e86\u3002num\u304c0\u306e\u3068\u304d\u306f\u5168\u91cf\u8aad\u3080\u3002\r\n\t\t\t\tif( num != 0 &amp;&amp; idx &gt; num ){\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (FileNotFoundException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t} catch (IOException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\ttry {\r\n\t\t\t\tif (br != null) {\r\n\t\t\t\t\tbr.close();\r\n\t\t\t\t}\r\n\t\t\t} catch (IOException e) {\r\n\t\t\t\te.printStackTrace();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ret;\r\n\t}\r\n}\r\n<\/pre>\n<\/h6>\n<p>\u25cf\u4f7f\u3044\u65b9<\/p>\n<h6>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/\/ CSV\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f\r\nCSVReader reader = new CSVReader(FILE_PATH + INPUT_FILE_NAME, 0);\r\n\/\/ CSV\u30c7\u30fc\u30bf\u53d6\u5f97\r\nList&lt;List&lt;String&gt;&gt; csv = reader.read();\r\n<\/pre>\n<\/h6>\n<p>\u25cf\u89e3\u8aac<br \/>\n\u51e6\u7406\u306f\u81f3\u3063\u3066\u7c21\u5358\u3002<br \/>\n\u6982\u8981\u3060\u3051\u62bd\u51fa\u3059\u308b\u3068\u3001\u4ee5\u4e0b\u306a\u611f\u3058\u3067\u3059\u3002<br \/>\n\u24602\u6b21\u5143\u914d\u5217\uff08List&lt;List&gt;)\u3092\u4f5c\u6210<br \/>\n\u2461\u30d5\u30a1\u30a4\u30eb\u30aa\u30fc\u30d7\u30f3<br \/>\n\u24621\u884c\u8aad\u307f\u8fbc\u307f<br \/>\n\u2463\u8aad\u307f\u8fbc\u3093\u30601\u884c\u3092\u30ab\u30f3\u30de\u533a\u5207\u308a\u306b\u30ab\u30c3\u30c8\u3057\u3066\u914d\u5217\uff08List\uff09\u306b\u7a81\u3063\u8fbc\u3080<br \/>\n\u2464\u4f5c\u6210\u3057\u305f\u914d\u5217\u3092\u8fd4\u5374\u7528\u5916\u5074\u914d\u5217\uff08List&lt;List&gt;\uff09\u306b\u7a81\u3063\u8fbc\u3080<\/p>\n<p>\u3046\u3057\u308d\u306e\u30a8\u30e9\u30fc\u51e6\u7406\u306f\u304a\u307e\u3058\u306a\u3044\u3067\u3059\u3002<\/p>\n<p>\u3046\u3061\u306ePC\u3067\u5b9f\u884c\u3057\u3066\u3082\u3001100\u4e07\u4ef6\u306e\u30c7\u30fc\u30bf\u3092\u6570\u79d2\u3067\u8aad\u307f\u8fbc\u3080\u306e\u3067\u3001<br \/>\ncsv\u3092\u8aad\u307f\u8fbc\u3080\u306e\u306b\u30ab\u30f3\u30de\u533a\u5207\u308a\u3057\u304b\u3057\u3066\u306a\u3044\u3053\u3068\u3092\u9451\u307f\u3066\u3082<br \/>\nJava\u3082\u304b\u306a\u308a\u9ad8\u901f\u306b\u306a\u3063\u305f\u306a\u30fc\u3068\u601d\u3063\u305f\u4eca\u65e5\u3053\u306e\u9803\u3067\u3057\u305f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u3093\u306b\u3061\u306f\u3001kei0310\u3067\u3059\u3002 CSV\u30d5\u30a1\u30a4\u30eb\u3092Java\u306b\u53d6\u308a\u8fbc\u3080\u65b9\u6cd5\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002 \u3068\u306f\u3044\u3063\u3066\u3082\u3001\u666e\u901a\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u3066\u30ab\u30f3\u30de\u533a\u5207\u308a\u3067List\u306b\u683c\u7d0d\u3059\u308b\u3060\u3051\u3067\u3059\u306e\u3067\u3001 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u307f\u305f\u3044\u306b\u6271\u3063\u3066\u3044\u305f\u3060\u304f\u611f\u3058\u306b\u306a\u308b\u304b\u3068 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,28],"tags":[66,183,81,80],"_links":{"self":[{"href":"http:\/\/kei0310.info\/index.php?rest_route=\/wp\/v2\/posts\/240"}],"collection":[{"href":"http:\/\/kei0310.info\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kei0310.info\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kei0310.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/kei0310.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=240"}],"version-history":[{"count":5,"href":"http:\/\/kei0310.info\/index.php?rest_route=\/wp\/v2\/posts\/240\/revisions"}],"predecessor-version":[{"id":325,"href":"http:\/\/kei0310.info\/index.php?rest_route=\/wp\/v2\/posts\/240\/revisions\/325"}],"wp:attachment":[{"href":"http:\/\/kei0310.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kei0310.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=240"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kei0310.info\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}