从txt文件中读取数组?

时间:2016-01-27 00:48:18

标签: java arrays io

此文件从只有一行的文本文件中读取:

  7319812227725338960527291316

,输出为:

Reading input values from text.txt
731
981
222
772
533
89
60
527
291
316

问题是该程序如何提供此输出?我不知道它如何在每个阵列单元中存储3位数字?

我还注意到,当我将txt文件的内容复制到Word时,它会粘贴此

   7319812227725338960527291316

进入专栏:

731
981
222
772
533
89
60
527
291
316

文本文件来自我的老师。但是当我创建自己的文本文件并放置一个像123 456 789这样的数字时,输出是有意义的,因为txt文件中的数字是由空格分隔的,因此每个数字都将分配给一个数组单元格。

 import java.util.Scanner;
 import java.util.Vector;
 import java.util.Arrays;
 import java.io.File;

 public class test{

 public static void main(String[] args){
    Scanner s;
    if (args.length > 0){
        try{
            s = new Scanner(new File(args[0]));
        } catch(java.io.FileNotFoundException e){
            System.out.printf("Unable to open %s\n",args[0]);
            return;
        }
        System.out.printf("Reading input values from %s.\n",args[0]);
    }else{
        s = new Scanner(System.in);
        System.out.printf("Enter a list of non-negative integers. Enter a      negative value to end the list.\n");
    }
    Vector<Integer> inputVector = new Vector<Integer>();

    int v;
    while(s.hasNextInt() && (v = s.nextInt()) >= 0)
        inputVector.add(v);

    int[] array = new int[inputVector.size()];

    for (int i = 0; i < array.length; i++){
        array[i] = inputVector.get(i);
                    System.out.println(array[i]);
            }

}

}

1 个答案:

答案 0 :(得分:3)

问题是行结束字符。您机器的文本编辑器无法理解您的教授程序插入的换行符。但是你的java程序会检查其他操作系统的行结尾。这就是为什么您的Java程序可以实际获取正确的数字。 我相信您可以使用不同的文本编辑器(如Sublime)从您的老师打开文本文件,这将允许您查看和转换具有不同行结束字符的文件