Tip. MessageFormat 예제
이런 경우에 MessageFormat 을 사용하면 괜찮겠다.
/**
*
*/
package kr.pe.anaconda.test;
import java.io.File;
import java.text.MessageFormat;
import java.text.ParseException;
import java.util.Scanner;
/**
* @author diem
*
*/
public class MessageFormatTest {
/**
* msg 문자열에 {숫자}로 지정된 영역을 arguments 배열에 담긴 값으로 채워준다.
*/
private static void exam1(){
String msg = "Name: {0} \nTel: {1} \nAge: {2} \nBirthday: {3}. ";
Object[] arguments = {"홍길동", "123-1234-1234", "31", "06-22"};
String result = MessageFormat.format(msg, arguments);
System.out.println(result);
}
/**
* 일정한 형식의 문자열에 패턴에 지정된 문자열을 입력한다.
*/
private static void exam2(){
String tableName = "USER";
String msg = "INSERT INTO " +
tableName +
" VALUES (''{0}'', ''{1}'', ''{2}'', ''{3}'');";
Object[][] arguments = {
{"홍길동", "02-123-1234", "19", "10-11"},
{"전우치", "02-123-1235", "520", "10-15"}
};
for(int i = 0; i < arguments.length; i++){
String result = MessageFormat.format(msg, arguments[i]);
System.out.println(result);
}
}
/**
* 문자열에서 지정된 패턴으로 데이터를 추출한다.
* @throws ParseException
*/
private static void exam3() throws ParseException{
String[] data = {
"INSERT INTO USER VALUES ('홍길동', '02-123-1234', '19', '10-11');",
"INSERT INTO USER VALUES ('전우치', '02-123-1235', '520', '10-15');"
};
String pattern = "INSERT INTO USER VALUES ({0}, {1}, {2}, {3});";
MessageFormat mf = new MessageFormat(pattern);
for(int i = 0; i < data.length; i++){
Object[] objs = mf.parse(data[i]);
for(int j = 0; j < objs.length; j++ ){
System.out.println(objs[j]);
}
}
}
/**
* 지정된 문자열에 정해진 패턴에 맞게 파일에서 정보를 읽어와서 데이타를 채운다.
* user.text
* '홍길동', '02-123-1234', '19', '10-11'
* '전우치', '02-123-1235', '520', '10-15'
* @throws Exception
*/
private static void exam4() throws Exception{
String tableName = "USER";
String fileName = "c:\\Noname2.txt";
String msg = "INSERT INTO " +
tableName +
" VALUES (''{0}'', ''{1}'', ''{2}'', ''{3}'');";
File file = new File(fileName);
if(file.exists()){
Scanner s = new Scanner(file);
String pattern = "{0},{1},{2},{3}";
MessageFormat mf = new MessageFormat(pattern);
while(s.hasNextLine()){
String line = s.nextLine();
Object[] objs = mf.parse(line);
System.out.println(MessageFormat.format(msg, objs));
}
//작업이 완료 되면 파일을 닫아준다.
s.close();
}
}
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//exam1();
//exam2();
//exam3();
exam4();
}
}
'개발 > Java' 카테고리의 다른 글
[Spring] jsp에서 bean 호출하기 (0) | 2010.02.08 |
---|---|
Spring - Java/J2EE Application FrameworkVersion 1.2.2 (0) | 2010.02.04 |
[java] Properties 읽고 쓰기 (0) | 2009.12.04 |
[java] ResourceBundle 예제 (0) | 2009.12.04 |
[Java] File 클래스 속성 및 사용법 (0) | 2009.11.29 |