從這裡開始,開始需要執行程式。在之後的範例裡面,我們會把所有的 functions 都先放在 TaggingMain_Sample.java 裡。
文章列表
為了之後讀取檔案更方便,我們先把所有下載回來的JSON檔裡面的article_id 先存成一個list,產生一個 articlelist.txt。
File folder = new File('來源資料夾名稱');
File[] listOfFiles = folder.listFiles();
在articlelist.txt中,A部分是檔案名稱,B部分是PTT 文章ID,C部分是作者ID。這三個部分會是之後讀入其他檔案的依據,你也可把當他做是要讀取文章的 Index。
在ReadAllArticlesList()方法中,讀取存放來源JSON檔的資料夾以及裡面的 content。裡面有幾個檢查的 methods,例如檢查 JSON格式以及檔案格式是否合法?分別是 isJSONValid()、ExtensionCheck()以及getFileExtension()。
讀取內文
先來針對要已經下載回來的JSON檔進行處理。在示範檔 TaggingMain_Sample.java 的ReadAllArticles()已經先抓取全部的檔案存成 Vector (filenameVec與articleIdVec,檔名以及文章ID),之後再用 for 迴圈再一一針對每個檔案進行資料的處理。
File file = new File('來源資料夾名稱' + articlelist.txt);
BufferedReader bfr = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
在前一篇有提到,我們要抓這些資料回來:
在GetContentByArticleId()這個方法中,丟入剛才分別儲存為兩個Vector的變數filenameVec與articleIdVec,在for迴圈內取出各自index內的值再丟入GetContentByArticleId()中,如此會去各JSON檔中取出該文章ID的內文。
FileReader fr = new FileReader('來源資料夾名稱' + filenameVec.get(i));
BufferedReader bfr = new BufferedReader(fr);
由於每個JSON檔中都是用 articles 當作key製作為陣列,所以先取出陣列內的list:
JSONArray jsonarray = new JSONArray(obj.get(“articles”).toString());
之後在各自取出對應的資料,例如作者名稱:
author = articleobj.getString("author");
如此即可取出全部的變數。
免責聲明:本文章提到的股市指數與說明皆為他人撰寫文章內容,包括:選股條件,買入條件,賣出條件和風險控制參數,只適用於文章內的解釋與說明,此提示及建議內容僅供參考之用,並不構成投資研究、認購、招攬或邀約任何人士投資任何投資產品或交易策略,亦不應視為投資建議。