From 691ce35e4910b11f188207afb8dc6f7429284d0e Mon Sep 17 00:00:00 2001 From: Jan-Pascal van Best Date: Sat, 10 Mar 2012 23:54:41 +0100 Subject: [PATCH] REad and write config file --- .../src/org/vanbest/xmltv/Config.java | 38 +++++++++++++++++-- .../src/org/vanbest/xmltv/Main.java | 13 +++++++ 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/tv_grab_nl_java/src/org/vanbest/xmltv/Config.java b/tv_grab_nl_java/src/org/vanbest/xmltv/Config.java index b4c124d..87a69d9 100644 --- a/tv_grab_nl_java/src/org/vanbest/xmltv/Config.java +++ b/tv_grab_nl_java/src/org/vanbest/xmltv/Config.java @@ -1,20 +1,33 @@ package org.vanbest.xmltv; +import java.io.BufferedReader; +import java.io.BufferedWriter; import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.util.ArrayList; import java.util.List; import org.apache.commons.io.FileUtils; public class Config { - public String configFile; public List channels; public Config() { } - public void writeConfig() { - + public void writeConfig(String filename) throws IOException { + FileUtils.forceMkdir(new File(filename).getParentFile()); + PrintWriter out = new PrintWriter(new OutputStreamWriter( new FileOutputStream( filename ))); + for(Channel c: channels) { + out.println(c.id + ": " + c.name); + } + out.close(); } public static File defaultConfigFile() { @@ -25,8 +38,25 @@ public class Config { return readConfig(defaultConfigFile().getCanonicalPath()); } - public static Config readConfig(String filename) { + public static Config readConfig(String filename) throws IOException { Config result = new Config(); + BufferedReader reader = new BufferedReader( new InputStreamReader( new FileInputStream( filename))); + List channels = new ArrayList(); + while(true) { + String s = reader.readLine(); + if(s==null) break; + if (!s.contains(":")) continue; + if (s.startsWith("#")) continue; + String[] parts = s.split("[[:space:]]*:[[:space:]]*", 2); + Channel c = new Channel(Integer.parseInt(parts[0]), parts[1], ""); + channels.add(c); + } + result.setChannels(channels); return result; } + + public void setChannels(List channels) { + this.channels = channels; + } + } diff --git a/tv_grab_nl_java/src/org/vanbest/xmltv/Main.java b/tv_grab_nl_java/src/org/vanbest/xmltv/Main.java index 6b7262f..f54ed3b 100644 --- a/tv_grab_nl_java/src/org/vanbest/xmltv/Main.java +++ b/tv_grab_nl_java/src/org/vanbest/xmltv/Main.java @@ -60,6 +60,19 @@ public class Main { TvGids gids = new TvGids(); List channels = gids.getChannels(); + System.out.println(channels); + + Config config = new Config(); + config.setChannels(channels); + try { + config.writeConfig(Config.defaultConfigFile().getCanonicalPath()); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } -- 2.39.5