如何从文本文件中获取值
How to Get a value from a text file
我的问题:我需要从文本文件中获取多个值。
我正在开发一个从 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());
}
}
问题是它不起作用,我没有得到模块后的字符串。
谢谢
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() 方法中的这个 (' ') 是一个字符,可以隐式类型转换为整数。
我的问题:我需要从文本文件中获取多个值。
我正在开发一个从 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());
}
}
问题是它不起作用,我没有得到模块后的字符串。
谢谢
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)