private static Log log = LogFactory.getLog(Config.class);
private static Config instance;
-
private final PropertiesConfiguration properties;
private static final String APPLICATION_NAME = "nicobrowser";
private static final String CONFIG_NAME = APPLICATION_NAME + ".properties";
InputStream resource = null;
try {
resource = ClassLoader.getSystemResourceAsStream("resources/" + FEEDURL_NAME);
- createNewFeedFile(resource, FEEDURL_FILE);
+ createNewFileFromResource(resource, FEEDURL_FILE);
result = true;
log.info("FEED URLファイルを作成しました: " + FEEDURL_FILE.getCanonicalPath());
} finally {
}
}
}
- if(!MYLIST_CONFIG_FILE.exists()){
- createNewMylistConfigFile(MYLIST_CONFIG_FILE);
- log.info("MYLISTファイルを作成しました: " + MYLIST_CONFIG_FILE.getCanonicalPath());
+ if (!MYLIST_CONFIG_FILE.exists()) {
+ InputStream resource = null;
+ try {
+ resource = ClassLoader.getSystemResourceAsStream("resources/" + MYLIST_CONFIG_NAME);
+ createNewFileFromResource(resource, MYLIST_CONFIG_FILE);
+ log.info("MYLISTファイルを作成しました: " + MYLIST_CONFIG_FILE.getCanonicalPath());
+ } finally {
+ if (resource != null) {
+ resource.close();
+ }
+ }
}
return result;
}
FileUtils.writeLines(file, props);
}
- private static void createNewFeedFile(InputStream resource, File dest) throws IOException {
+ /**
+ * リソースから新しいファイルを作成します. リソースファイルはUTF-8で記述する必要があります.
+ * 出力されるファイルはOSのネイティブエンコーディングになります.
+ * @param resource 入力リソース.
+ * @param dest 出力ファイル.
+ * @throws IOException 出力できなかった場合.
+ */
+ private static void createNewFileFromResource(InputStream resource, File dest) throws IOException {
List<String> list = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(resource, "UTF-8"));
while (true) {
FileUtils.writeLines(dest, list);
}
- private static void createNewMylistConfigFile(File file) throws IOException{
- FileUtils.writeStringToFile(file, "");
- }
private Config() {
try {
properties = new PropertiesConfiguration(CONFIG_FILE);
try {
final List<?> lines = FileUtils.readLines(MYLIST_CONFIG_FILE);
final Pattern p = Pattern.compile("(^\\d+)");
- for(Object l : lines){
+ for (Object l : lines) {
Matcher m = p.matcher(l.toString());
- if(m.find()){
+ if (m.find()) {
mylists.add(m.group(1));
}
}
List<?> lines = FileUtils.readLines(FEEDURL_FILE, getEncoding());
for (Object line : lines) {
final String str = line.toString();
- if (StringUtils.isEmpty(str) || str.startsWith("#")) {
+ if (StringUtils.isBlank(str) || str.startsWith("#")) {
// 空行, コメント行はスキップ.
continue;
}
public static File getFeedUrlFile() {
return FEEDURL_FILE;
}
+
public static File getMylistConfigFile() {
return MYLIST_CONFIG_FILE;
}