猿问

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

我有一个包含以下内容的简单文本文件:


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;

        }

}

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


隔江千里
浏览 236回答 3
3回答

弑天下

这可以解决问题:double[]&nbsp;arr&nbsp;=&nbsp;Files.lines(Paths.get(PATH)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.flatMap(line&nbsp;->&nbsp;Arrays.stream(line.split("&nbsp;"))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.mapToDouble(Double::parseDouble) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.toArray();在这里,我们逐行读取文件,然后使用 将其拆分" ",解析每个数字并将其转换为double.&nbsp;然后您可以arr[]从您的方法&nbsp;返回gns(String TxtFile)。

ibeautiful

扫描仪#nextDouble试试下面的一个,完整的例子如下:import java.util.ArrayList;import java.util.List;import java.util.Scanner;import java.io.File;import java.io.FileNotFoundException;public class NextDouble {&nbsp; public static void main(String[] args) throws FileNotFoundException {&nbsp; &nbsp; Scanner sc = new Scanner(new File("input.txt"));&nbsp; &nbsp; List<Double> doubles = new ArrayList<Double>();&nbsp; &nbsp; while (sc.hasNextDouble()) {&nbsp; &nbsp; &nbsp; doubles.add(sc.nextDouble());&nbsp; &nbsp; }&nbsp; &nbsp; System.out.println(doubles); // => [1.0, 3.0, 8.0, 6.0, 5.0]&nbsp; }}input.txt 包含以下行:1 3 8 6 5您可以在文档中找到有关扫描仪的更多信息

慕森王

您正在尝试将Arr哪个类型设置double为一个ArrayList类型String,这是不可能的,因为类型double和类型ArrayList不同。如果你想要一个双打数组列表,请使用ArrayList<Double>&nbsp;d&nbsp;=&nbsp;new&nbsp;ArrayList<>();
随时随地看视频慕课网APP

相关分类

Java
我要回答