JAVA File 쓰기, 이어쓰기, 개행 후 이어쓰기

2011. 1. 12. 15:2699. 정리전 - IT/11. Java


 import java.io.*;
import java.util.*;

class test
{
 public static void main(String[] args)
 {
  String str = "12345";

  try
  { 
   File file = new File("test.txt");
   input (file,str,"hmmm"); 
   // new = 새로 쓰기, old = 붙여서 이어 쓰기, else = 한줄 개행한 후 이어서 쓰기
   System.out.println(output(file));

  }
  catch (Exception e)
  {
   System.out.println(e);
  }
 }


 static void input (File file,String str,String mode) {
  
  int fileLen = fileLength(file);
  String fileOut = output(file);
  try
  {
   BufferedWriter buffWrite = new BufferedWriter(new FileWriter(file));
   if (mode.equals("new"))
   {    
    buffWrite.write(str,0,str.length());
    buffWrite.flush();
   }else if(mode.equals("old")) {
    str = fileOut + str;
    buffWrite.write(str,0,str.length());
    buffWrite.flush();
   }else if(mode.equals("else")) {
    str = fileOut + "\n" + str;
    buffWrite.write(str,0,str.length());
    buffWrite.flush();
   }else { // else와 같은 기능 다른 방법의 코딩
    buffWrite.write(fileOut,0,fileLen);
    if (fileLen != 0) {
     buffWrite.newLine();
    }
    buffWrite.write(str,0,str.length());
    buffWrite.flush();
   }
   buffWrite.close();
  }
  catch (Exception e)
  {
   System.out.println(e);
  }
 }

 static int fileLength (File file) {
  int b,count = 0;
  try
  {  
   BufferedReader buffRead = new BufferedReader(new FileReader(file));
   while ((b = buffRead.read()) != -1) {
    count++;
   }
   buffRead.close();  
  }
  catch (Exception e)
  {
   System.out.println(e);
  }
  return count;
 }

 static String output (File file) {
   int b;
   String fileContent = "";
   try
   {   
    BufferedReader buffRead = new BufferedReader(new FileReader(file));

    while ((b = buffRead.read()) != -1) {
     fileContent += (char)b;
    }
    buffRead.close(); 
   }
   catch (Exception e)
   {
    System.out.println(e);
   }
   return fileContent; 
 }
}