Java中的文件读取器
在java中:我正在读取一个名为fn的文件。它是一个文本文件,第一个数字表示行数和字符数: 例如:Java中的文件读取器,java,Java,在java中:我正在读取一个名为fn的文件。它是一个文本文件,第一个数字表示行数和字符数: 例如: 4 AFBA\n BBBB\n EFHE\n EFJH\n 每4个字符后面都有一行。这是4排 到目前为止,我得到的是: File fp = new File(fn); FileReader fr = new FileReader(fp); BufferedReader bfr = new BufferedReader(fr); 如何创建一个java算法来将这些数据存储在数据结构中,例如
4
AFBA\n
BBBB\n
EFHE\n
EFJH\n
每4个字符后面都有一行。这是4排
到目前为止,我得到的是:
File fp = new File(fn);
FileReader fr = new FileReader(fp);
BufferedReader bfr = new BufferedReader(fr);
如何创建一个java算法来将这些数据存储在数据结构中,例如数组列表、数组、堆栈等
非常感谢。我刚刚开始编程,如果这个问题与堆栈溢出修辞不符,我感到非常抱歉。您可以使用Java 8流API和nio库将每一行作为对象存储在集合中。例如:
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;
import java.util.*;
public class streamFileRead {
public static void main(String args[]) {
String fileName = "drive://location//fn.txt";
List<String> list = new ArrayList<String>();
try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
list = stream.collect(Collectors.toList());
} catch (IOException e) {
e.printStackTrace();
}
}
}
导入java.nio.file.Files;
导入java.nio.file.path;
导入java.util.stream.stream;
导入java.util.*;
公共类streamFileRead{
公共静态void main(字符串参数[]){
字符串文件名=”drive://location//fn.txt";
列表=新的ArrayList();
try(Stream=Files.line(path.get(fileName))){
list=stream.collect(Collectors.toList());
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
我保证这比使用循环读取每一行和使用
\n
识别换行更快、更简单。您可以使用Java8流API和nio库将每一行作为对象存储在集合中。例如:
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;
import java.util.*;
public class streamFileRead {
public static void main(String args[]) {
String fileName = "drive://location//fn.txt";
List<String> list = new ArrayList<String>();
try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
list = stream.collect(Collectors.toList());
} catch (IOException e) {
e.printStackTrace();
}
}
}
导入java.nio.file.Files;
导入java.nio.file.path;
导入java.util.stream.stream;
导入java.util.*;
公共类streamFileRead{
公共静态void main(字符串参数[]){
字符串文件名=”drive://location//fn.txt";
列表=新的ArrayList();
try(Stream=Files.line(path.get(fileName))){
list=stream.collect(Collectors.toList());
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
我保证这比使用循环读取每一行并使用\n
识别换行更快速、更简单。您可以尝试以下方法:
class ReadFile{
public static void main(String[] args) throws IOException {
File fp = new File(fn);
FileReader fr = new FileReader(fp);
BufferedReader bfr = new BufferedReader(fr);
List<String> list= new ArrayList<>();
String s="";
while( (s=(bfr.readLine()))!=null){
list.add(s);
}
System.out.print(list);
}
}
类读取文件{
公共静态void main(字符串[]args)引发IOException{
文件fp=新文件(fn);
FileReader fr=新的FileReader(fp);
BufferedReader bfr=新的BufferedReader(fr);
列表=新的ArrayList();
字符串s=“”;
而((s=(bfr.readLine())!=null){
列表。添加(s);
}
系统输出打印(列表);
}
}
您可以尝试以下方法:
class ReadFile{
public static void main(String[] args) throws IOException {
File fp = new File(fn);
FileReader fr = new FileReader(fp);
BufferedReader bfr = new BufferedReader(fr);
List<String> list= new ArrayList<>();
String s="";
while( (s=(bfr.readLine()))!=null){
list.add(s);
}
System.out.print(list);
}
}
类读取文件{
公共静态void main(字符串[]args)引发IOException{
文件fp=新文件(fn);
FileReader fr=新的FileReader(fp);
BufferedReader bfr=新的BufferedReader(fr);
列表=新的ArrayList();
字符串s=“”;
而((s=(bfr.readLine())!=null){
列表。添加(s);
}
系统输出打印(列表);
}
}
您可以使用缓冲读取器
读取所有行吗?1)如何将第一行存储在不同的整数中,2)最好将其存储在什么数据结构中?您可以使用缓冲读取器
读取所有行吗?1)如何将第一行存储在不同的整数中,2)什么样的数据结构最适合存储此数据?如果使用nio,也可以使用。还有BufferedReader#行
。你说的apache库是什么意思?@dan1st这个库是java.nio
。从什么时候开始,它是apache库而不是默认的java?那么Files.lines
到底在哪里呢?你是说BufferedReader
中的方法吗?如果你使用nio,你也可以使用。还有BufferedReader#行
。你说的apache库是什么意思?@dan1st这个库是java.nio
。从什么时候开始,它是apache库而不是默认的java?那么Files.lines
到底在哪里呢?您是指缓冲区读取器中的方法吗?