OSDN Git Service

Logマネージャのプログラム速度を改良
authorspark_xp <spark_xp@d8c9ecd3-d47d-4367-8645-de82c00e513f>
Tue, 26 Apr 2011 17:14:17 +0000 (17:14 +0000)
committerspark_xp <spark_xp@d8c9ecd3-d47d-4367-8645-de82c00e513f>
Tue, 26 Apr 2011 17:14:17 +0000 (17:14 +0000)
git-svn-id: http://svn.sourceforge.jp/svnroot/nt-manager/NishioTweetManager/trunk@113 d8c9ecd3-d47d-4367-8645-de82c00e513f

src/twitter/log/TwitterLogManager.java
src/twitter/manage/TweetManager.java

index 9f47fd5..c7c5f7c 100644 (file)
@@ -78,6 +78,53 @@ public class TwitterLogManager {
                osw.close();
                fos.close();
        }
+       
+       /**
+        * ログをファイルに保存する
+        * @param statuses
+        */
+       public void add(List<Status> statuses) throws IOException {
+               // ログディレクトリを作成
+               File logDir = new File("./" + LOG_DIRECTORY);
+               if (!logDir.exists()) {
+                       // ディレクトリが存在しないので作成する
+                       if (logDir.mkdir() == false) {
+                               throw new IOException(LOG_DIRECTORY + "ディレクトリを作成できませんでした.");
+                       }
+               }
+               // タイムライン保存用ディレクトリを作成
+               String timelineDirName = "./" + LOG_DIRECTORY + "/"
+                               + TIMELINE_DIRECTORY;
+               File timelineDir = new File(timelineDirName);
+               if (!timelineDir.exists()) {
+                       // ディレクトリが存在しないので作成する
+                       if (timelineDir.mkdir() == false) {
+                               throw new IOException(TIMELINE_DIRECTORY + "ディレクトリを作成できませんでした.");
+                       }
+               }
+
+               // 保存するデータのファイル名は年_月_日.log
+               String filename = timelineDirName + "/" + CurrentTime.getCurrentYear()
+                               + "_" + CurrentTime.getCurrentMonth() + "_"
+                               + CurrentTime.getCurrentDay() + ".log";
+
+               FileOutputStream fos = new FileOutputStream(filename, true);
+               OutputStreamWriter osw = new OutputStreamWriter(fos, CHARACTER_ENCODING);
+               BufferedWriter bw = new BufferedWriter(osw);
+
+               // ファイル書き込みデータ
+               StringBuffer writeData = new StringBuffer("");
+               for( Status s : statuses ) {
+                       writeData.append(StatusXMLConverter.convertStatusToXML(s) + "\n");
+               }
+               
+               // ファイル書き込み
+               bw.write(writeData.toString());
+               // ファイルを閉じる
+               bw.close();
+               osw.close();
+               fos.close();
+       }
 
        /**
         * 指定した件数分のTweet情報を取得する
index 261324d..3adb0c5 100644 (file)
@@ -636,9 +636,10 @@ public class TweetManager {
                }
                // ログ保存
                try {
-                       for (Status s : tweetList) {
-                               logManager.add(s);
-                       }
+//                     for (Status s : tweetList) {
+//                             logManager.add(s);
+//                     }
+                       logManager.add( tweetList );
                } catch (IOException e) {
                        e.printStackTrace();
                }