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

+ Recent posts