Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将正长整数值读入数组_Java_Arrays_Binary_Integer_Long Integer - Fatal编程技术网

Java 将正长整数值读入数组

Java 将正长整数值读入数组,java,arrays,binary,integer,long-integer,Java,Arrays,Binary,Integer,Long Integer,我想读入一个.dat类型的文件。我不知道文件的大小,但我知道内容将以 111000111 0101 0100 1 0011 110 0010 101 0001 11 0000 目前我所拥有的是以下 public static void readFile(String fileName) throws FileNotFoundException, IOException { File file = new File(fileName); byte[] bytes = new b

我想读入一个.dat类型的文件。我不知道文件的大小,但我知道内容将以

111000111
0101
0100
1
0011
110
0010
101
0001
11
0000
目前我所拥有的是以下

public static void readFile(String fileName) throws FileNotFoundException, IOException
{
    File file = new File(fileName);

    byte[] bytes = new byte[(int) file.length()];
    try (FileInputStream fis = new FileInputStream(file))
    {
        fis.read(bytes);
    }


    String[] value = new String(bytes).split("\\s+");


    numbers = new int[value.length];


    for (int i = 0; i < value.length; i++)
    {
        numbers[i] = Integer.parseInt(value[i]);
    }





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

} // end of import file 
感谢您的帮助

问候,


Mike

这是因为您正在将值解析为整数

Integer.parseInt(value[i])
改用这个:

String[] values = new String[value.length];


for (int i = 0; i < value.length; i++)
{
    values[i] = value[i];
}
String[]values=新字符串[value.length];
for(int i=0;i
如果前导零有问题,则不应使用Integer.parseInt

在这种情况下,保存字符串数组会更好

numbers = new String[value.length];


如果以后,你想在任何方法中使用数组内容作为整数,你可以在那里使用Integer.parseInt。

那么你的问题是什么?他想知道如何防止截断数字中的前导零。如果你想保留前导零,那么你就不需要
Integer
s。只需将它们存储为
String
s即可。好吧,我想我的问题是,我需要保持这些值的原样。这样,0001在转换为int进行必要的转换后仍保持为0001。所以Integer.parseInt没有按我需要的那样工作。有没有一种方法可以进行填充,使我能够保留零?
numbers = new String[value.length];
numbers[i] = value[i];