Prior to Java 7, reading a text file into an ArrayList involves lot of boiler plate coding, equally you lot necessitate to read the file trace of piece of job past times line as well as insert each trace of piece of job into an ArrayList, but from Java vii onward, you lot tin role the utility method Files.readAllLines() to read all lines of a text file into a List. This method provide a List of String which contains all lines of files. Later you lot tin convert this List to ArrayList, LinkedList, or whatever listing you lot desire to. Btw, this the quaternary article inward the serial of reading a text file inward Java. In the before parts, you lot conduct maintain learned how to read a file using Scanner as well as BufferedReader(1). Then, reading the whole file equally String (2) as well as in conclusion reading a text file into array (3). This plan is non really dissimilar from those inward price of fundamentals. We are even thence going to role read() method for Java half dozen solution as well as volition read all text until this method provide -1 which signals the destination of file.
Just retrieve to closed the BufferedReader 1 time you lot are done to foreclose resources leak, equally you lot don't conduct maintain try-with-resource contention inward Java 6.
hither is sample code to read text file into List inward JDK 7:
The readAllLines() method accepts a CharSet, you lot tin role a pre-defined graphic symbol laid upward e.g. StandardCharsets.UTF_8 or StandardCharsets.UTF_16. See Core Java for the Impatient to acquire to a greater extent than nearly novel file utility classes introduced inward Java vii as well as 8.
Reading text file into ArrayList inward Java
That's all nearly how to read a text file into ArrayList inward Java. You tin come across its really slow inward Java vii as well as Java 8 past times using Files.readAllLines() method. Though you lot should hold upward mindful of graphic symbol encoding piece reading text file inward Java. In Java half dozen also, the solution using BufferedReader or Scanner is non really hard to implement, but the affair you lot necessitate to retrieve is that you lot are loading the whole file into memory. If file is also large as well as you lot don't conduct maintain plenty memory, your plan volition top past times throwing java.lang.OutOfMemoryError: Java Heap Space. In short, this solution is exclusively expert for minor file, for large file you lot should ever read past times streaming.
Further Learning
Complete Java Masterclass
Java Fundamentals: The Java Language
Java In-Depth: Become a Complete Java Engineer!
Reading text file into ArrayList inward Java 6
If you lot know how to read a file trace of piece of job past times line, either past times using Scanner or past times using BufferedReader thence reading a text file into ArrayList is non hard for you. All you lot necessitate to practice is read each trace of piece of job as well as shop that into ArrayList, equally shown inward next example:BufferedReader bufReader = new BufferedReader(new FileReader("file.txt")); ArrayList<String> listOfLines = new ArrayList<>(); String trace of piece of job = bufReader.readLine(); while (line != null) { listOfLines.add(line); trace of piece of job = bufReader.readLine(); } bufReader.close();
Just retrieve to closed the BufferedReader 1 time you lot are done to foreclose resources leak, equally you lot don't conduct maintain try-with-resource contention inward Java 6.
Reading text file into List inward Java 7
In Java 7, you lot don't necessitate to write code to read as well as shop into ArrayList, simply telephone band the Files.readAllLines() method as well as this volition provide you lot a List of String, where each chemical factor is corresponding trace of piece of job from the line. Since List is an ordered collection the social club of lines inward file is preserved inward list. You tin after convert this List to ArrayList or whatever other implementation.hither is sample code to read text file into List inward JDK 7:
public static List<String> readFileIntoList(String file) { List<String> lines = Collections.emptyList(); try { lines = Files.readAllLines(Paths.get(file), StandardCharsets.UTF_8); } catch (IOException e) { // TODO Auto-generated grab block e.printStackTrace(); } return lines; }
The readAllLines() method accepts a CharSet, you lot tin role a pre-defined graphic symbol laid upward e.g. StandardCharsets.UTF_8 or StandardCharsets.UTF_16. See Core Java for the Impatient to acquire to a greater extent than nearly novel file utility classes introduced inward Java vii as well as 8.
Java Program to read text file into ArrayList
Here is the consummate Java plan to demonstrate both methods to read a text file into ArrayList. This plan start instruct you lot how to practice this inward JDK vii or Java 8 using Files.readAllLines() method as well as after using BufferedReader as well as ArrayList inward Java half dozen as well as lower version. You tin compile as well as run this plan from ascendency prompt or if you lot desire to run inward Eclipse, simply re-create as well as glue inward Eclipse Java project. The Eclipse IDE volition automatically practice origin file for you. Then simply correct click as well as Run equally Java Program. Make certain you lot conduct maintain file.txt inward your classpath. Since I conduct maintain given the relative path here, brand certain you lot pose that file within Eclipse projection directory.Reading text file into ArrayList inward Java
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Collections; import java.util.List; /* * Java Program read a text file into ArrayList inward Java half dozen * as well as Java 8. */ public class ReadFileIntoArrayList { public static void main(String[] args) throws Exception { // reading text file into List inward Java 7 List<String> lines = Collections.emptyList(); try { lines = Files.readAllLines(Paths.get("file.txt"), StandardCharsets.UTF_8); } catch (IOException e) { // TODO Auto-generated grab block e.printStackTrace(); } System.out.println("Content of List:"); System.out.println(lines); // reading text file into ArrayList inward Java 6 BufferedReader bufReader = new BufferedReader(new FileReader("file.txt")); ArrayList<String> listOfLines = new ArrayList<>(); String trace of piece of job = bufReader.readLine(); while (line != null) { listOfLines.add(line); trace of piece of job = bufReader.readLine(); } bufReader.close(); System.out.println("Content of ArrayLiList:"); System.out.println(listOfLines); } } Output Content of List: [Python, Ruby, JavaScript] Content of ArrayLiList: [Python, Ruby, JavaScript]
That's all nearly how to read a text file into ArrayList inward Java. You tin come across its really slow inward Java vii as well as Java 8 past times using Files.readAllLines() method. Though you lot should hold upward mindful of graphic symbol encoding piece reading text file inward Java. In Java half dozen also, the solution using BufferedReader or Scanner is non really hard to implement, but the affair you lot necessitate to retrieve is that you lot are loading the whole file into memory. If file is also large as well as you lot don't conduct maintain plenty memory, your plan volition top past times throwing java.lang.OutOfMemoryError: Java Heap Space. In short, this solution is exclusively expert for minor file, for large file you lot should ever read past times streaming.
Further Learning
Complete Java Masterclass
Java Fundamentals: The Java Language
Java In-Depth: Become a Complete Java Engineer!
No comments:
Post a Comment