Skip to content

Commit 348af68

Browse files
committed
Added a file util example
1 parent 72a4719 commit 348af68

2 files changed

Lines changed: 96 additions & 0 deletions

File tree

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package nl.rdb.java_examples.files;
2+
3+
import static lombok.AccessLevel.PRIVATE;
4+
5+
import java.io.BufferedReader;
6+
import java.io.FileInputStream;
7+
import java.io.FileOutputStream;
8+
import java.io.InputStreamReader;
9+
import java.nio.charset.Charset;
10+
import java.util.function.Consumer;
11+
12+
import lombok.NoArgsConstructor;
13+
import lombok.extern.slf4j.Slf4j;
14+
15+
@Slf4j
16+
@NoArgsConstructor(access = PRIVATE)
17+
public class FileUtil {
18+
19+
public static void readFile(String fileName, Consumer<String> stringSupplier) {
20+
readFile(fileName, stringSupplier, Charset.defaultCharset());
21+
}
22+
23+
public static void readFile(String fileName, Consumer<String> stringSupplier, Charset charset) {
24+
try (final BufferedReader file = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), charset))) {
25+
for (String line = file.readLine(); line != null; line = file.readLine()) {
26+
stringSupplier.accept(line);
27+
}
28+
} catch (Exception e) {
29+
log.error("Problem reading file.");
30+
}
31+
}
32+
33+
public static void writeFile(String fileName, byte[] bytes) {
34+
try (final FileOutputStream fileOut = new FileOutputStream(fileName)) {
35+
fileOut.write(bytes);
36+
} catch (Exception e) {
37+
log.error("Problem writing file.");
38+
}
39+
}
40+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package nl.rdb.java_examples.files;
2+
3+
import static nl.rdb.java_examples.files.FileUtil.readFile;
4+
import static nl.rdb.java_examples.files.FileUtil.writeFile;
5+
6+
import java.io.BufferedReader;
7+
import java.io.FileInputStream;
8+
import java.io.FileOutputStream;
9+
import java.io.InputStreamReader;
10+
import java.util.Arrays;
11+
import java.util.stream.Collectors;
12+
13+
import lombok.extern.slf4j.Slf4j;
14+
import nl.rdb.java_examples.scanner.Example;
15+
16+
@Slf4j
17+
public class ReadAndWriteExample {
18+
19+
@Example
20+
void readAndWrite() {
21+
String path = "";
22+
String fileNameIn = "";
23+
24+
try (final BufferedReader file = new BufferedReader(new InputStreamReader(new FileInputStream("%s/%s".formatted(path, fileNameIn))))) {
25+
StringBuilder builder = new StringBuilder();
26+
27+
for (String line = file.readLine(); line != null; line = file.readLine()) {
28+
builder.append(Arrays.stream(line.split(";"))
29+
.collect(Collectors.joining("\";\"", "\"", "\"")));
30+
builder.append('\n');
31+
}
32+
33+
try (final FileOutputStream fileOut = new FileOutputStream(fileNameIn)) {
34+
fileOut.write(builder.toString().getBytes());
35+
}
36+
} catch (Exception e) {
37+
log.error("Problem reading file.");
38+
}
39+
}
40+
41+
@Example
42+
void readAndWriteWithFileReader() {
43+
String path = "";
44+
String fileNameIn = "";
45+
46+
StringBuilder builder = new StringBuilder();
47+
48+
readFile("%s/%s".formatted(path, fileNameIn), line -> {
49+
builder.append(Arrays.stream(line.split(";"))
50+
.collect(Collectors.joining("\";\"", "\"", "\"")));
51+
builder.append('\n');
52+
});
53+
54+
writeFile(fileNameIn, builder.toString().getBytes());
55+
}
56+
}

0 commit comments

Comments
 (0)