Java:从文件中读取整数数组
假设我有一个名为Java:从文件中读取整数数组,java,arrays,readfile,Java,Arrays,Readfile,假设我有一个名为“input.txt”的文件,其中包含一组正整数: 6 5 6 8 6 2 4 以此类推……(每行一个整数) 我想读取此文件并将其放入数组。第一个整数(在本例中为6)表示数组中索引或元素的数量,因此为6个点。其他数字填充从0开始的数组。所以在索引0处,数字是5,在索引1处,数字是6,依此类推 有人能告诉我如何读取这个文件并将其放入一个名为A的数组中,然后将每个索引中的整数返回为n吗 这就是我到目前为止所做的: import java.io.*; public class inp
“input.txt”
的文件,其中包含一组正整数:6
5
6
8
6
2
4
以此类推……(每行一个整数)
我想读取此文件并将其放入数组。第一个整数(在本例中为6)表示数组中索引或元素的数量,因此为6个点。其他数字填充从0开始的数组。所以在索引0处,数字是5,在索引1处,数字是6,依此类推
有人能告诉我如何读取这个文件并将其放入一个名为A的数组中,然后将每个索引中的整数返回为n吗
这就是我到目前为止所做的:
import java.io.*;
public class inputFile {
public static jobScheduleRecursive(int[] A, int i)
{
try
{
FileReader filereader = new FileReader("input.txt");
BufferedReader bufferedreader = new BufferedReader(filereader);
String line = bufferedreader.readLine();
//While we have read in a valid line
while (line != null) {
//Try to parse integer from the String line
try {
System.out.println(Integer.parseInt(line));
} catch (NumberFormatException nfe) {
System.err.println("Failed to parse integer from line:" + line);
System.err.println(nfe.getMessage());
System.exit(1);
}
line = bufferedreader.readLine();
}
}
catch(FileNotFoundException filenotfoundexception)
{
System.out.println("File not found.");
}
catch(IOException ioexception)
{
System.out.println("File input error occured!");
ioexception.printStackTrace();
}
return A;
}
我想我做错了什么。请提供帮助。使用a和方法,您只需几行即可解决此问题:
Scanner s = new Scanner(new File("input.txt"));
int[] array = new int[s.nextInt()];
for (int i = 0; i < array.length; i++)
array[i] = s.nextInt();
Scanner s=新的扫描仪(新文件(“input.txt”);
int[]数组=新的int[s.nextInt()];
for(int i=0;i
我想,对于类似ACM的比赛,您需要这个:)我使用以下模板:
import java.io.*;
import java.util.*;
public class Task {
private BufferedReader input;
private PrintWriter output;
private StringTokenizer stoken;
String fin = "input";
String fout = "output";
private void solve() { // some solving code...
int n = nextInt();
int[] mas = new int[n];
for (int i = 0; i<n; i++){
mas[i] = nextInt();
}
}
Task() throws IOException {
input = new BufferedReader(new FileReader(fin + ".txt"));
output = new PrintWriter(new FileWriter(fout + ".txt"));
solve();
input.close();
output.flush();
output.close();
}
int nextInt() {
return Integer.parseInt(nextToken());
}
long nextLong() {
return Long.parseLong(nextToken());
}
double nextFloat() {
return Float.parseFloat(nextToken());
}
double nextDouble() {
return Double.parseDouble(nextToken());
}
String nextToken() {
while ((stoken == null) || (!stoken.hasMoreTokens())) {
try {
String line = input.readLine();
stoken = new StringTokenizer(line);
} catch (IOException e) {
e.printStackTrace();
}
}
return stoken.nextToken();
}
public static void main(String[] args) throws IOException {
new Task();
}
}
import java.io.*;
导入java.util.*;
公开课任务{
专用缓冲读取器输入;
专用打印机输出;
斯托克私人酒店;
字符串fin=“输入”;
字符串fout=“输出”;
private void solve(){//某些解决代码。。。
int n=nextInt();
int[]mas=新的int[n];
对于(inti=0;iimport java.io.File;
导入java.io.FileNotFoundException;
导入java.util.Scanner;
公共类文件{
公共静态void main(字符串[]args)引发FileNotFoundException{
文件f=新文件(“l.txt”);
扫描器b=新扫描器(f);
int[]arr=newint[b.nextInt()];
对于(int i=0;i
Java8+
int[] ints = Files.lines(Paths.get("input.txt"))
.mapToInt(Integer::parseInt).toArray();
如果文件是类路径
资源:
int[] ints = Files
.lines(Paths.get(ClassLoader.getSystemResource("input.txt")
.toURI())).mapToInt(Integer::parseInt).toArray();
从文件打印内容:
Arrays.stream(ints).forEach(System.out::println);
如果使用列表结构来存储数字,则不必将条目数放在第一行。一旦通过调用List.toArray()完成读取,就可以轻松地将列表转换为数组(固定长度)可能会有更快的解决方案。在分析应用程序并确定瓶颈之前,我不会研究这些解决方案。在获取阵列大小的长度时,是否已将扫描仪移到下一行?然后填充阵列时,它将从下一行的第二行开始file@Bartzilla是的,那就是OP想要的,不是吗确实如此!您还可以使用Files.lines(path.get(“input.txt”)).mapToInt(Integer::parseInt).boxed()来获取非原语列表。
Arrays.stream(ints).forEach(System.out::println);