如何从文本文件中获取值

时间:2015-03-18 13:08:38

标签: java string file text-files

我的问题:我需要从文本文件中获取多个值。

我正在研究从ttcn-3语言到XML语言的解析器,我需要做的是从ttcn模块中获取一些关键词和值,这些关键词和值写在文本文件中以构建XML文件。

以下是我的ttcn代码的开头

module SessionSetup
{
type port InputPortType message { in charstring }
type port OutputPortType message { out charstring }
type component SessionSetupResComponentType {
    port InputPortType InputPort;
    port OutputPortType OutputPort;
}

例如,我需要获取模块后面的字符串(SessionSetup),这是我做的代码:

public  void ReadTheFileGetTheModuleName(String fichier){
            try{
                InputStream ips=new FileInputStream(fichier); 
                InputStreamReader ipsr=new InputStreamReader(ips);
                BufferedReader br=new BufferedReader(ipsr);
                String ligne;

                while ((ligne=br.readLine())!=null){
                    if (ligne.contains("module"))
                    {
                        String[] st = ligne.split(ligne, ' ');
                        System.out.println("Nom = "+st[1]);
                    }

                    chaine+=ligne+"\n";

                }
                br.close();
            }       
            catch (Exception e){
                System.out.println(e.toString());
            }
        }

问题是它不起作用,我不会在模块之后得到字符串。

由于

1 个答案:

答案 0 :(得分:1)

 String[] st = ligne.split(ligne, ' ');
                       /\/\/\/\/\/\/\
                 Incorrect way, pass some regex on which string should split

您的String#Split()方法有误,请查看documentation

应该是这样的

public String[] split(String regex, int limit)

or

public String[] split(String regex)

注意:您不会收到编译时错误,因为split()方法中的这个('')是一个字符,可以隐式类型转换为Integer。