package day6.lab2;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Collections;
public class FileController {
void reverseLine(String inputFileName, String outputFileName) throws Exception
{
FileReader fr = new FileReader(inputFileName); //파일읽기
BufferedReader br = new BufferedReader(fr); // 버퍼에 읽기
FileWriter fw = new FileWriter(outputFileName); //파일 쓰기
BufferedWriter bw = new BufferedWriter(fw); //버퍼로 쓰기
ArrayList<String> list = new ArrayList<String>(); // arraylist 객체 선언
String s = null;
while((s = br.readLine()) != null){ //마지막이 아닐때까지 계속 돌아라
list.add(s); //list에 s의 내용을 넣는다
}
br.close();
fr.close(); //br, sr 닫음
/* Collections.reverse(list); //내용 뒤집는 함수
for(String ss :list){
System.out.println(ss);
}*/ // 뒤집어서 읽기
//뒤에서부터 읽기
for(int i = list.size()-1; i>=0; i--){
System.out.println(list.get(i));
bw.write(list.get(i)); //버퍼의 내용으로 파일에 쓰기
bw.newLine(); //줄바꾸기
}
bw.close(); //자원반납
fw.close();
}
public static void main(String[] args) throws Exception {
new FileController().reverseLine("src/day6/lab2/input.txt", "src/day6/lab2/output.txt"); //객체 선언과 메서드사용
}
}
/*
문제 . FileController 클래스의 void reverseLine
(String inputFileName, String outputFileName)
메쏘드를 완성하십시오. reverseLine 메쏘드는 String 타입의
텍스트 포맷 파일명을 입력받아 텍스트의 라인순서를 반대로 하여 두번째
인자인 출력할 String 타입의 텍스트 파일명으로 저장합니다.
즉 입력파일의 1라인은 출력파일의 제일 마지막 라인이 됩니다. (20점)
void reverseLine(String inputFileName, String outputFileName) throws Exception
- inputFileName은 절대경로를 포함한 입력파일명입니다.
- outputFileName은 절대경로를 포함한 출력파일명입니다.
*/
'Computer > JAVA' 카테고리의 다른 글
Java Network (0) | 2014.08.29 |
---|---|
Java FileCalculator (0) | 2014.08.29 |
Java IO (0) | 2014.08.29 |
Java FileCompare (0) | 2014.08.29 |
Java StringBuffer (0) | 2014.08.29 |