Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 51d8742

Browse files
committed
Read file in Java: done
1 parent 43b4bd7 commit 51d8742

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package com.rampatra.misc;
2+
3+
import java.io.BufferedReader;
4+
import java.io.FileReader;
5+
import java.io.IOException;
6+
import java.nio.file.Files;
7+
import java.nio.file.Path;
8+
import java.nio.file.Paths;
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
import java.util.stream.Collectors;
12+
import java.util.stream.Stream;
13+
14+
15+
/**
16+
* Various ways to read a file in Java.
17+
*
18+
* @author rampatra
19+
* @since 2019年06月03日
20+
*/
21+
public class ReadFile {
22+
23+
private static Stream<String> readFile(String filePath) throws IOException {
24+
return Files.lines(Paths.get(filePath)); // use Files.readAllLines() to return a List<String> instead of Stream<String>
25+
}
26+
27+
private static String readFile(Path filePath) throws IOException {
28+
Stream<String> lines = Files.lines(filePath);
29+
String data = lines.collect(Collectors.joining("\n"));
30+
lines.close();
31+
return data;
32+
}
33+
34+
private static List<String> readLargeFile(Path filePath) throws IOException {
35+
try (BufferedReader reader = Files.newBufferedReader(filePath)) {
36+
List<String> result = new ArrayList<>();
37+
for (; ; ) {
38+
String line = reader.readLine();
39+
if (line == null)
40+
break;
41+
result.add(line);
42+
}
43+
return result;
44+
}
45+
}
46+
47+
private static String readFileOldWay(String filePath) throws IOException {
48+
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
49+
StringBuilder builder = new StringBuilder();
50+
String currentLine = reader.readLine();
51+
while (currentLine != null) {
52+
builder.append(currentLine);
53+
builder.append("\n");
54+
currentLine = reader.readLine();
55+
}
56+
// reader.close(); not required as try-with-resources is used
57+
58+
return builder.toString();
59+
}
60+
}
61+
62+
public static void main(String[] args) throws IOException {
63+
readFile("src/main/java/com/rampatra/misc/reverseandadd.txt").forEach(System.out::println);
64+
System.out.println("==================");
65+
System.out.println(readFile(Paths.get("src/main/java/com/rampatra/misc/reverseandadd.txt")));
66+
System.out.println("==================");
67+
System.out.println(readLargeFile(Paths.get("src/main/java/com/rampatra/misc/reverseandadd.txt")));
68+
System.out.println("==================");
69+
System.out.println(readFileOldWay("src/main/java/com/rampatra/misc/reverseandadd.txt"));
70+
}
71+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /