【问题标题】:parsing Pipe Ini with Java用 Java 解析 Pipe Ini
【发布时间】:2016-11-10 16:37:38
【问题描述】:

我有一个 ini 文件,其中包含一些由管道分隔的数据。我想读入文件,然后用java将键、值设置为字符串或其他东西。

我使用的是 ini4j,但是为了解析 ini 文件,我到处寻找你需要的部分,我的文件没有它,数据看起来像这样

4800-722|4800 逻辑 4800-723|4800 逻辑 4800-743|4900 逻辑 4900-745|4900 逻辑 4900-746|4900 逻辑 4900-786|4900 逻辑 4800-C41|4900 控制器 4800-C42|4900 控制器

我想采用这个,例如将第一个作为键,然后将第二个作为值,如 hashmap。我遇到的问题是我找不到如何解析这个 ini 文件,就像我看到的所有内容都应该使用部分并从部分中获取一些东西一样。我不能把它移到一个文本文件中,这是一个存在于服务器上的文件,我必须使用它。任何帮助将不胜感激我到目前为止只有这个

Wini ini;
     try {
      ini = new Wini(new File("C:/toolbox/settings.ini"));



     } catch (InvalidFileFormatException e) {
      System.out.println("Invalid file format.");
     } catch (IOException e) {
      System.out.println("Problem reading file.");
     }

【问题讨论】:

  • 您的文件在我看来不是有效的 INI。你确定它遵守“标准”吗?
  • 是的,我实际上将它从服务器 ftp 到我的机器并用记事本打开它,这就是我尝试使用 ini4j 测试它的方式
  • 我看不出 ftp 或服务器与文件是否为实际 INI 格式有什么关系。正如您所说,INI 格式期望用括号和键值对标记的部分用等号分隔。您的文件没有这些
  • 我想知道我是否可以将其视为 txt 文件。然后在管道上进行拆分。
  • 是的,你可以。毕竟是纯文本文件。文件结尾实际上没有任何意义,它们只是一种约定(并帮助某些程序确定它们的格式)

标签: java ini


【解决方案1】:

我只是将其作为文本文件阅读,并能够解析出我需要的代码,谢谢 UnholySheep。

  public static void LoadEtlData(String[] args) throws IOException {
    String file_name = "C:/toolbox/troux_etl.ini"; 
    ArrayList<String> records = new ArrayList<String>(); 

    try {
        BufferedReader reader = new BufferedReader(new FileReader(file_name)); 
        String line; 
        while ((line = reader.readLine()) != null){
            records.add(line); 
        }
        reader.close();
        System.out.println(records);


    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-26
    • 2012-11-18
    • 2011-09-18
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    相关资源
    最近更新 更多