JAVA-I/O-PrintWriter

 

[PrintWriter]

PrintWriter 클래스를 사용하면 [출력형식] 정의

public static void main(String[] args) {
	try{
		//출력전용 (파일 생성 기능)
		PrintWriter pw = new PrintWriter("C:\\Temp\\homework.txt");
		pw.println("**************************************");
		pw.println("*      HOMEWORK                      *");
		pw.println("**************************************");
		pw.printf("%3s  : %5d  %5d  %5d  %5.1f ", "아무개",10,30,50, (float)((10+30+50)/3));
		pw.println();
		pw.close(); //파일에 write close()
		
		//read
		FileReader fr = new FileReader("C:\\Temp\\homework.txt");
		BufferedReader br = new BufferedReader(fr);
		String s="";
		while((s = br.readLine()) != null){
			System.out.println(s);
		}
		
		br.close();
		fr.close();
		
	}catch(Exception e){
		System.out.println(e.getMessage());
	}finally {
		//System.out.println("finally");
	}
}

String baseDir = "C:\\Temp"; //검색할 디렉토리
String word = "HELLO"; //검색할 단어
String save = "result.txt"; //검색 결과가 저장된 파일명

public Ex12_PrintWrite_String_Find() throws IOException{
	
	File dir = new File(baseDir); //C:\\Temp
	
	if(!dir.isDirectory()){
			System.out.println("baseDir :" + "is not directory or exist" );
			System.exit(0);
	}
	//PrintWriter p = new PrintWriter("")
	PrintWriter writer = new PrintWriter(new FileWriter(save));
	BufferedReader br = null;
	
	File[] files = dir.listFiles(); //C:\\Temp  하위 자원(파일 ,폴더)
	for(int i = 0 ; i < files.length ; i++){
		if(!files[i].isFile()){
			continue; //파일이 아닌 경우 skip
		}
		
		br = new BufferedReader(new FileReader(files[i]));
		
		//각 파일의 데이터를 라인단위를 읽어서
		String line = "";
		while((line = br.readLine()) != null){
			if(line.indexOf(word) != -1){
				writer.write(word  + "=" + files[i].getAbsolutePath() + "\n");
			}
		}
		writer.flush();
	}
	
	br.close();
	writer.close();
}

public static void main(String[] args) {
	try {
		Ex12_PrintWrite_String_Find StringFind = new Ex12_PrintWrite_String_Find();
	} catch (IOException e) {
		e.printStackTrace();
	}

}