Java /从.txt文件中读取

时间:2012-05-04 07:20:35

标签: java

我有.txt文件,我想从中读取char数组。

我有问题,在.txt文件中我有:

1  a

3  b

2  c

表示a [1] ='a',a [3] ='b',a [2] ='c'。

如何读取文件,我忽略了空格,并考虑新的行?感谢

2 个答案:

答案 0 :(得分:1)

我建议你使用Map代替它,因为它更适合这类问题。:

public static void main(String[] args) {

    Scanner s = new Scanner("1 a 3 b 2 c"); // or new File(...)

    TreeMap<Integer, Character> map = new TreeMap<Integer, Character>();

    while (s.hasNextInt())
        map.put(s.nextInt(), s.next().charAt(0));
}

如果您想将TreeMap转换为char[],可以执行以下操作:

char[] a = new char[map.lastKey() + 1];

for (Entry<Integer, Character> entry : map.entrySet())
    a[entry.getKey()] = entry.getValue();

注意:

  • 此解决方案不适用于负面索引
  • 如果不止一个
  • ,则只占用“第一个”字符

答案 1 :(得分:0)

使用Scanner可能最容易。

ArrayList<String> a = new ArrayList<String>();
Scanner s = new Scanner(yourFile);
while(s.hasNextInt()) {
    int i = s.nextInt();
    String n = s.next();
    a.add(n);
}

当然,这大胆地假设正确的输入;你应该更加偏执。如果您需要专门处理每一行,可以使用hasNextLine()nextLine(),然后使用String类中的split()拆分该行。