파일 읽기
/**
* 파일을 읽는다.
* @param filePath
* @param fileName
* @param source
* @return
* @throws Exception
*/
public static List<String> readFile(String filePath, String fileName) throws Exception {
return readFile( filePath, fileName, DEFAULT_CHARSET);
}
/**
* 파일을 읽는다.
* @param filePath
* @param fileName
* @param source
* @return
* @throws Exception
*/
public static List<String> readFile(String filePath, String fileName, String charset) throws Exception {
final List<String> list = new ArrayList<>();
// 타겟 파일
File targetFile = new File(filePath + fileName);
// 파일 없음
if( !targetFile.exists()) {
throw new FileNotFoundException();
}
// 파일 읽을 권한 없음
if( !targetFile.canRead()) {
throw new Exception("파일을 읽을 권한이 없습니다");
}
try (InputStream in = openInputStream(targetFile)) {
final BufferedReader reader = new BufferedReader( (new InputStreamReader(in, Charsets.toCharset(charset))));
String line = reader.readLine();
while (line != null) {
list.add(line);
line = reader.readLine();
}
}
return list;
}
파일 쓰기
/**
* 파일을 쓴다.
* @param filePath
* @param fileName
* @param source
* @return
* @throws Exception
*/
public static boolean writeFile(String filePath, String fileName, Object source) {
return writeFile( filePath, fileName, source, DEFAULT_CHARSET);
}
/**
* 파일을 쓴다.
* @param filePath
* @param fileName
* @param source
* @return
* @throws Exception
*/
public static boolean writeFile(String filePath, String fileName, Object source, String charSet) {
try {
File targetFile = new File(filePath + fileName);
// 바이트배열
byte[] byteArray = null;
// 바이트 배열일 경우
if( source instanceof byte[]) {
byteArray = (byte[])source;
}
// 파일일 경우
else if(source instanceof File){
BufferedReader in = null;
try {
byteArray = new byte[(int)((File)source).length()];
in = new BufferedReader( new InputStreamReader( new FileInputStream((File)source), charSet));
String src = "";
String line = "";
for( int i = 1; (line = in.readLine()) != null; i++) {
src += line;
}
byteArray = src.getBytes(charSet);
//in.read(byteArray);
}catch (Exception e) {
e.printStackTrace();
return false;
}finally {
if( in != null) {
in.close();
}
}
}
// 스트링일경우
else if( source instanceof String){
byteArray = ((String)source).getBytes(charSet);
}
writeByteArrayToFile(targetFile, byteArray);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
'프로그래밍 > Java' 카테고리의 다른 글
[자바/Java] serialVersionUID에 대해 알아보자. (0) | 2022.12.13 |
---|---|
[JAVA/자바] 공학용계산기 만들기 (0) | 2021.01.14 |
Html으 PDF로 변경하는 방법 (0) | 2020.03.13 |
[자바/JAVA] 디자인패턴 #6 데코레이터( Decorator) 패턴 (0) | 2019.01.10 |
[자바/JAVA] 디자인패턴 #6 빌더( Builder) 패턴 (0) | 2019.01.06 |