这个java代码是为了读取文本文件而编写的,如下所示:
AL B C DF
E FBI GL H
IB J K LNH
java代码:
try{
BufferedReader in = new BufferedReader(new FileReader(defaultFile));
while ( (str = in.ReadLine()) != null) {
StringTokenizer es = new StringTokenizer(str, "\t");
Parameter param = new Parameter();
param.setParameterName(es.nextToken());
param.setParameterType(es.nextToken());
...
parameterVector.addElement(param);
}
in.Close();
}
catch (Exception ex) {
return ("can not find valid default parameter file");
}
我想将此代码转换为C#。为了能够一次读取一行文本文件(相对于列),我需要有类似令牌的东西。我找不到C#中StringTokenizer的任何等价物,所以我考虑在列之间定义空格(''),但它不适用于str.columns(空格),它被定义为参数。
这就是我在做的事情:
try{
System.IO.StreamReader inBuffer = new System.IO.StreamReader(@"C:\Users\WriteLines2.txt");
while ( (str = inBuffer.ReadLine()) != null) {
char[] space = {' '};
string[] columns = str.Split(space);
Parameter param = new Parameter();
param.setParameterName(str.columns(space));
param.setParameterType(str.columns(space));
}
inBuffer.Close();
}
catch (Exception ex) {
return ("can not find valid default parameter file");
}
有没有人知道如何阅读有关列的文本文件。
提前致谢
答案 0 :(得分:0)
使用StringSplitOptions.RemoveEmptyEntries
:
string[] columns = str.Split(new [] { ' ' },StringSplitOptions.RemoveEmptyEntries);
然后:
int i = 0;
Parameter param = new Parameter();
param.setParameterName(columns[i++]);
param.setParameterType(columns[i++]);
...
parameterVector.addElement(param);
答案 1 :(得分:0)
在Java中,您将与\t
分开。
尝试使用
string [] values = str.split (new char [] {'\t'}, StringSplitOptions.RemoveEmptyEntries);
Parameter param = new Parameter();
int i=0;
if (i>=values.Length) continue;
param.setParameterName(values [i++]);
if (i>=values.Length) continue;
param.setParameterType(values [i++]);
...