首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用"double“方法将文本文件读入Java

使用"double“方法将文本文件读入Java
EN

Stack Overflow用户
提问于 2018-10-27 20:51:12
回答 3查看 111关注 0票数 -5

我有一个简单的文本文件,内容如下:

代码语言:javascript
复制
4 5 2 7

我想让Java读取这个文件并用它创建一个数组。然而,我希望我的方法保持它的“双倍”属性。不过,我很难得到我的array命令来解决这个问题:

代码语言:javascript
复制
import java.util.*; 
import java.nio.charset.StandardCharsets; 
import java.nio.file.*; 
import java.io.*; 

public class ReadFile {
    public static void main(String[] args){
        gns(Arr);
    }
    public static double gns(String TxtFile) throws IOException {
        Path path = Paths.get("C:\\Users\\me\\files\\inputfiles");
        int numLines = (int)Files.lines(path).count();
        Scanner fileScanner = new Scanner(new FileReader("TxtFile.txt"));
        double Arr = new ArrayList<String>();
        return Arr;
        }
}

由于数组的类型,它一直给我一个数组。

EN

回答 3

Stack Overflow用户

发布于 2018-10-27 21:14:31

这将会起到作用:

代码语言:javascript
复制
double[] arr = Files.lines(Paths.get(PATH))
                    .flatMap(line -> Arrays.stream(line.split(" ")))
                    .mapToDouble(Double::parseDouble)
                    .toArray();

在这里,我们逐行读取文件,然后使用" "将其拆分,解析每个数字并将其转换为一个double数组。然后,您可以从您的方法gns(String TxtFile)返回arr[]

票数 1
EN

Stack Overflow用户

发布于 2018-10-28 03:31:24

Scanner#nextDouble

试试下面的例子,完整的例子如下:

代码语言:javascript
复制
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;

public class NextDouble {
  public static void main(String[] args) throws FileNotFoundException {
    Scanner sc = new Scanner(new File("input.txt"));
    List<Double> doubles = new ArrayList<Double>();
    while (sc.hasNextDouble()) {
      doubles.add(sc.nextDouble());
    }

    System.out.println(doubles); // => [1.0, 3.0, 8.0, 6.0, 5.0]

  }
}

input.txt包含以下行:

代码语言:javascript
复制
1 3 8 6 5

您可以在doc中找到有关扫描仪的更多信息

票数 1
EN

Stack Overflow用户

发布于 2018-10-27 20:54:37

您正在尝试将类型为doubleArr设置为类型为StringArrayList,这是不可能的,因为doubleArrayList的类型不同。

如果您想要一个替身的数组列表,请使用

代码语言:javascript
复制
ArrayList<Double> d = new ArrayList<>();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53022066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档