반응형
File IO 테스트
[파일 읽기]
1. 문자별 읽기
private static ArrayList<Character> readFileToCharsArray(String fileName) throws Exception {
ArrayList<Character> charList = new ArrayList<Character>();
File file = new File(fileName);
FileReader filereader = new FileReader(file);
int singleCh = 0;
while ((singleCh = filereader.read()) != -1) {
charList.add((char) singleCh);
}
filereader.close();
return charList;
}
2. 전체 byteArray 읽기
private static byte[] readFileToByteArray(String fileName) throws Exception {
File file = new File(fileName);
return Files.readAllBytes(file.toPath());
}
3. line 별 읽기
private static ArrayList<String> readFileToLines(String fileName) throws Exception {
ArrayList<String> lines = new ArrayList<String>();
File file = new File(fileName);
FileReader filereader = new FileReader(file);
BufferedReader bufReader = new BufferedReader(filereader);
String line = "";
while ((line = bufReader.readLine()) != null) {
lines.add(line);
}
bufReader.close();
return lines;
}
4. 전체 라인 읽기
private static List<String> readFileToAllLines(String fileName) throws Exception {
File file = new File(fileName);
return Files.readAllLines(file.toPath(), StandardCharsets.UTF_8);
}
[파일 쓰기]
1. ByteArray로 파일 쓰기
private static void writeFileFromBytes(String fileName, byte[] bytesFile) throws Exception {
File lOutFile = new File(fileName);
FileOutputStream lFileOutputStream = new FileOutputStream(lOutFile);
lFileOutputStream.write(bytesFile);
lFileOutputStream.close();
}
2. 라인별 파일 쓰기
private static void writeFileFromLines(String fileName, ArrayList<String> linesFile) throws Exception {
File file = new File(fileName);
FileWriter fileWriter = new FileWriter(file);
for (String line : linesFile) {
fileWriter.write(line);
fileWriter.write("\r\n");
}
fileWriter.close();
}
[전체 테스트 코드]
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
public class FileIoTest {
public static void main(String[] args) {
String fileName = "test.txt";
String outFileName = "out.txt";
try {
ArrayList<Character> charsFile = readFileToCharsArray(fileName);
byte[] bytesFile = readFileToByteArray(fileName);
ArrayList<String> linesFile = readFileToLines(fileName);
List<String> allLinesFile = readFileToAllLines(fileName);
System.out.println("파일 읽기");
System.out.println("1. charsFile :: 한 문자씩 파일 읽기");
for (char c : charsFile) {
System.out.print(c);
}
System.out.println("2. bytesFile :: 전체 바이트 파일 읽기");
for (byte b : bytesFile) {
System.out.print((char) b);
}
System.out.println("3. linesFile :: 한 라인씩 파일 읽기");
for (String s : linesFile) {
System.out.println(s);
}
System.out.println("4. allLinesFile :: 젙체 라인 파일 읽기");
for (String s : allLinesFile) {
System.out.println(s);
}
System.out.println("파일 쓰기");
System.out.println("1. ByteArray 파일 쓰기");
writeFileFromBytes(outFileName + "2", bytesFile);
System.out.println("2. 라인별 파일 쓰기");
writeFileFromLines(outFileName, linesFile);
} catch (Exception e) {
}
System.exit(0);
}
private static void writeFileFromBytes(String fileName, byte[] bytesFile) throws Exception {
File lOutFile = new File(fileName);
FileOutputStream lFileOutputStream = new FileOutputStream(lOutFile);
lFileOutputStream.write(bytesFile);
lFileOutputStream.close();
}
private static void writeFileFromLines(String fileName, ArrayList<String> linesFile) throws Exception {
File file = new File(fileName);
FileWriter fileWriter = new FileWriter(file);
for (String line : linesFile) {
fileWriter.write(line);
fileWriter.write("\r\n");
}
fileWriter.close();
}
private static ArrayList<Character> readFileToCharsArray(String fileName) throws Exception {
ArrayList<Character> charList = new ArrayList<Character>();
File file = new File(fileName);
FileReader filereader = new FileReader(file);
int singleCh = 0;
while ((singleCh = filereader.read()) != -1) {
charList.add((char) singleCh);
}
filereader.close();
return charList;
}
private static byte[] readFileToByteArray(String fileName) throws Exception {
File file = new File(fileName);
return Files.readAllBytes(file.toPath());
}
private static ArrayList<String> readFileToLines(String fileName) throws Exception {
ArrayList<String> lines = new ArrayList<String>();
File file = new File(fileName);
FileReader filereader = new FileReader(file);
BufferedReader bufReader = new BufferedReader(filereader);
String line = "";
while ((line = bufReader.readLine()) != null) {
lines.add(line);
}
bufReader.close();
return lines;
}
private static List<String> readFileToAllLines(String fileName) throws Exception {
File file = new File(fileName);
return Files.readAllLines(file.toPath(), StandardCharsets.UTF_8);
}
}
반응형
'JAVA' 카테고리의 다른 글
JAVA Scanner 이용해서 인자 값 받기 (0) | 2021.05.31 |
---|