为了账号安全,请及时绑定邮箱和手机立即绑定

使用“双重”方法将文本文件读入 Java

使用“双重”方法将文本文件读入 Java

隔江千里 2021-12-10 16:13:55
我有一个包含以下内容的简单文本文件:4 5 2 7我希望 Java 读取这个文件并用它创建一个数组。但是,我希望我使用的方法保持其“双重”属性。我很难让我的数组命令弄清楚: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;        }}由于数组的类型,它不断给我一个数组。
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

这可以解决问题:

double[] arr = Files.lines(Paths.get(PATH))
                    .flatMap(line -> Arrays.stream(line.split(" ")))
                    .mapToDouble(Double::parseDouble)
                    .toArray();

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


查看完整回答
反对 回复 2021-12-10
?
ibeautiful

TA贡献1993条经验 获得超6个赞

扫描仪#nextDouble

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


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 包含以下行:


1 3 8 6 5

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


查看完整回答
反对 回复 2021-12-10
?
慕森王

TA贡献1777条经验 获得超3个赞

您正在尝试将Arr哪个类型设置double为一个ArrayList类型String,这是不可能的,因为类型double和类型ArrayList不同。

如果你想要一个双打数组列表,请使用

ArrayList<Double> d = new ArrayList<>();


查看完整回答
反对 回复 2021-12-10
  • 3 回答
  • 0 关注
  • 235 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号