Java가 파일을 ArrayList로 읽는 중입니까?
파일의 내용을 ArrayList<String>
Java 로 어떻게 읽 습니까?
파일 내용은 다음과 같습니다.
cat
house
dog
.
.
.
각 단어를 ArrayList
.
이 자바 코드는 각 단어를 읽고 ArrayList에 넣습니다.
Scanner s = new Scanner(new File("filepath"));
ArrayList<String> list = new ArrayList<String>();
while (s.hasNext()){
list.add(s.next());
}
s.close();
사용 s.hasNextLine()
하고 s.nextLine()
당신이 원하는 경우 단어 라인 대신의 말씀으로 줄을 읽을 수 있습니다.
commons-io가 있는 한 줄짜리 :
List<String> lines = FileUtils.readLines(new File("/path/to/file.txt"), "utf-8");
구아바 와 동일 :
List<String> lines =
Files.readLines(new File("/path/to/file.txt"), Charset.forName("utf-8"));
당신이 사용할 수있는:
List<String> list = Files.readAllLines(new File("input.txt").toPath(), Charset.defaultCharset() );
출처 : Java API 7.0
내가 찾은 가장 간단한 형태는 ...
List<String> lines = Files.readAllLines(Paths.get("/path/to/file.txt"));
Java 8 에서는 스트림과 Files.lines
다음을 사용할 수 있습니다 .
List<String> list = null;
try (Stream<String> lines = Files.lines(myPathToTheFile))) {
list = lines.collect(Collectors.toList());
} catch (IOException e) {
LOGGER.error("Failed to load file.", e);
}
또는 파일 시스템에서 파일로드를 포함하는 기능으로 :
private List<String> loadFile() {
List<String> list = null;
URI uri = null;
try {
uri = ClassLoader.getSystemResource("example.txt").toURI();
} catch (URISyntaxException e) {
LOGGER.error("Failed to load file.", e);
}
try (Stream<String> lines = Files.lines(Paths.get(uri))) {
list = lines.collect(Collectors.toList());
} catch (IOException e) {
LOGGER.error("Failed to load file.", e);
}
return list;
}
List<String> words = new ArrayList<String>();
BufferedReader reader = new BufferedReader(new FileReader("words.txt"));
String line;
while ((line = reader.readLine()) != null) {
words.add(line);
}
reader.close();
예를 들어 다음과 같이 할 수 있습니다 (예외가있는 전체 코드).
BufferedReader in = null;
List<String> myList = new ArrayList<String>();
try {
in = new BufferedReader(new FileReader("myfile.txt"));
String str;
while ((str = in.readLine()) != null) {
myList.add(str);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null) {
in.close();
}
}
//CS124 HW6 Wikipedia Relation Extraction
//Alan Joyce (ajoyce)
public List<String> addWives(String fileName) {
List<String> wives = new ArrayList<String>();
try {
BufferedReader input = new BufferedReader(new FileReader(fileName));
// for each line
for(String line = input.readLine(); line != null; line = input.readLine()) {
wives.add(line);
}
input.close();
} catch(IOException e) {
e.printStackTrace();
System.exit(1);
return null;
}
return wives;
}
다음은 저에게 잘 맞는 솔루션입니다.
List<String> lines = Arrays.asList(
new Scanner(new File(file)).useDelimiter("\\Z").next().split("\\r?\\n")
);
If you don't want empty lines, you can also do:
List<String> lines = Arrays.asList(
new Scanner(new File(file)).useDelimiter("\\Z").next().split("[\\r\\n]+")
);
Here is an entire program example:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class X {
public static void main(String[] args) {
File f = new File("D:/projects/eric/eclipseworkspace/testing2/usernames.txt");
try{
ArrayList<String> lines = get_arraylist_from_file(f);
for(int x = 0; x < lines.size(); x++){
System.out.println(lines.get(x));
}
}
catch(Exception e){
e.printStackTrace();
}
System.out.println("done");
}
public static ArrayList<String> get_arraylist_from_file(File f)
throws FileNotFoundException {
Scanner s;
ArrayList<String> list = new ArrayList<String>();
s = new Scanner(f);
while (s.hasNext()) {
list.add(s.next());
}
s.close();
return list;
}
}
To share some analysis info. With a simple test how long it takes to read ~1180 lines of values.
If you need to read the data very fast, use the good old BufferedReader FileReader example. It took me ~8ms
The Scanner is much slower. Took me ~138ms
The nice Java 8 Files.lines(...) is the slowest version. Took me ~388ms.
Scanner scr = new Scanner(new File(filePathInString));
/*Above line for scanning data from file*/
enter code here
ArrayList<DataType> list = new ArrayList<DateType>();
/*this is a object of arraylist which in data will store after scan*/
while (scr.hasNext()){
list.add(scr.next()); } /*above code is responsible for adding data in arraylist with the help of add function */
Add this code to sort the data in text file. Collections.sort(list);
참고URL : https://stackoverflow.com/questions/5343689/java-reading-a-file-into-an-arraylist
'Programing' 카테고리의 다른 글
contentOffset을 프로그래밍 방식으로 설정하면 scrollViewDidScroll이 트리거됩니다. (0) | 2020.12.06 |
---|---|
Google Maps V2-Android-현재 확대 / 축소 수준 얻기 (0) | 2020.12.06 |
UIScrollView에서 키보드 닫기 (0) | 2020.12.06 |
Haskell : 튜플을 매핑하는 방법? (0) | 2020.12.06 |
iOS 7 상태 표시 줄의 MFMailComposeViewController가 검은 색입니다. (0) | 2020.12.06 |