String tmp = "<Coolbar><aa>한글</aa><bb>bb</bb></Coolbar>";
InputStream bai = new ByteArrayInputStream(tmp.toString().getBytes("UTF-8"));

'java > util' 카테고리의 다른 글

[util] - 자바 문자열 압축/압축풀기  (0) 2011.11.14
[util] - 특정 디렉토리 파일 목록 출력하자.  (0) 2011.06.17
[util] - byte to hex string  (0) 2010.09.07
[java] - replaceNull  (0) 2010.07.05
[java] - File readLine  (2) 2010.07.01
Posted by 짱가쟁이
   private static final char[] hexDigits = {
        '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
    };

   public static String toString(byte[] ba, int offset, int length) {
        char[] buf = new char[length * 2];
        int j = 0;
        int k;

        for (int i = offset; i < offset + length; i++) {
            k = ba[i];
            buf[j++] = hexDigits[(k >>> 4) & 0x0F];
            buf[j++] = hexDigits[ k        & 0x0F];
        }
        return new String(buf);
    }

    public static String toString(byte[] ba) {
        return toString(ba, 0, ba.length);
    }

바이트 배열을 헥사 문자열로 변환하는 유틸

'java > util' 카테고리의 다른 글

[util] - 특정 디렉토리 파일 목록 출력하자.  (0) 2011.06.17
[InputStream] - String to InputStream  (1) 2010.10.13
[java] - replaceNull  (0) 2010.07.05
[java] - File readLine  (2) 2010.07.01
[java] - File read  (0) 2010.07.01
Posted by 짱가쟁이
2010. 7. 5. 14:25
흠. 가끔 Object를 파라미터로 넘길 때 각 필드값에 Null 이 들어가면 안될 경우가 생간다. 매번 object.setField("") 이런식으로 값을 초기화 시키기 귀찮으면 java refection 기능을 응용해서 작업해도 좋을 듯 싶다.

replaceNull()
- object의 선언된 필드만 가지고 와서 Null 값을 체크한다. 값에 null 이 있으면 "" 로 초기화 한다.
public static void replaceNull(Object obj) throws Exception {
        try {
            Class dymClass      = obj.getClass();
            Field[] fields            = dymClass.getDeclaredFields();
           
            for(int i = 0;i<fields.length;i++) {
                String methodName = "get" + fields[i].getName().substring(0, 1).toUpperCase() + fields[i].getName().substring(1, fields[i].getName().length());               
                Method method       = obj.getClass().getMethod(methodName, null);
                String value       = (String)(method.invoke(obj, null) + "");
                if("null".equals(value)) {
                    value = "";
                    String setMethodName = "set" + fields[i].getName().substring(0, 1).toUpperCase() + fields[i].getName().substring(1, fields[i].getName().length());
                    Method setMethod       = obj.getClass().getMethod(setMethodName, new Class[]{String.class});
                    setMethod.invoke(obj, new Object[]{value});
                }
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            throw e;
        }       
    }


'java > util' 카테고리의 다른 글

[InputStream] - String to InputStream  (1) 2010.10.13
[util] - byte to hex string  (0) 2010.09.07
[java] - File readLine  (2) 2010.07.01
[java] - File read  (0) 2010.07.01
[java] - byte array to image  (0) 2010.06.30
Posted by 짱가쟁이
2010. 7. 1. 13:31
파일에서 한줄씩 읽어서 String array 로 반환하자.
/**
 * 파일 한줄씩 읽기
 * 
 * @param file
 * @return
 * @throws IOException
 */
public static String[] readLine(File file) throws IOException {

    BufferedReader reader     = null;
    String[] result         = null;
    
    try {
        reader     = new BufferedReader(new FileReader(file));
        List<String> list         = new ArrayList<String>();

        // while(reader.read() != -1) { 첫번째 케릭터를 읽고 무시하니 line을 제대로 읽지 못함.
        while(reader.ready()) { // 변경
            String content = reader.readLine();
            
            if(content != null && !"".equals(content.trim())) {
                list.add(content);
            }
        }
        
        if(list.size() > 0) {
            result = new String[list.size()];
            for(int i = 0;i<list.size();i++) {
                result[i] = list.get(i);
            }
        }
    } catch(IOException ioe) {
        throw ioe;
    } finally {
        if(reader != null) reader.close();
    }

    return result;
}

위에 저넘을 사용하려다 문제가 발생함.. 파일을 읽을 때 얖에 2byte 빼고 데이터를 가져오더라.. 이유는 찾아보기 귀찮고 일은 바쁘고.. 그냥 새로 맹갔다.
댓글 남겨주신 GG님의 의견을 반영했습니다. 도움 감솨드립니다 ^^


/**
     * 파일 한줄씩 읽기
     *
     * @param file
     * @return
     * @throws IOException
     */
    public static String[] readLine1(File file) throws IOException {

        FileInputStream fstream = null;
        DataInputStream in        = null;
        BufferedReader br         = null;
       
        String[] result               = null;
       
        try {
            fstream = new FileInputStream(file);
            in = new DataInputStream(fstream);
            br = new BufferedReader(new InputStreamReader(in));
           
            List<String> list         = new ArrayList<String>();
           
            String strLine;
           
            while ((strLine = br.readLine()) != null)   {
                if(strLine != null && !"".equals(strLine.trim())) {
                    list.add(strLine);
                }
            }

            if(list.size() > 0) {
                result = new String[list.size()];
                for(int i = 0;i<list.size();i++) {
                    result[i] = list.get(i);
                }
            }
                       
        } catch(IOException ioe) {
            throw ioe;
        } finally {
            if(br != null) br.close();
            if(in != null) in.close();
            if(fstream != null) fstream.close();
        }

        return result;
    }

고민하기 싫은데. 대체 뭔 차이여.. 누가 설명좀 해주면 안될까?? 쩌ㅃ~



'java > util' 카테고리의 다른 글

[util] - byte to hex string  (0) 2010.09.07
[java] - replaceNull  (0) 2010.07.05
[java] - File read  (0) 2010.07.01
[java] - byte array to image  (0) 2010.06.30
[java] - 소수점 자르기 (duble type)  (0) 2010.06.30
Posted by 짱가쟁이
2010. 7. 1. 13:05
요넘 파일 가지고 놀때는 항상 API를 뒤적이더라.. 다른 넘들은 재사용을 잘하면서 요넘들은 뭐가 문제일까?

파일 전체를 문자열로 읽는 함수
/**
     * 파일 전체 읽기
     *
     * @param file
     * @return
     * @throws IOException
     */
    public static String read(File file) throws IOException {
       
        FileInputStream fis     = null;
        byte[]             buffer     = null;
       
        try {
            fis     = new FileInputStream(file);
            buffer     = new byte[fis.available()];       
            fis.read(buffer, 0, fis.available());
        } catch(IOException e) {
            throw e;
        } finally {
            if(fis != null) fis.close();
        }
       
        return new String(buffer);
    }

'java > util' 카테고리의 다른 글

[java] - replaceNull  (0) 2010.07.05
[java] - File readLine  (2) 2010.07.01
[java] - byte array to image  (0) 2010.06.30
[java] - 소수점 자르기 (duble type)  (0) 2010.06.30
[java] - base54 String decode  (0) 2010.06.30
Posted by 짱가쟁이
base64 인코딩된 데이터를 바이트로 디코딩후 이미지로 변환할 때 사용함.

Code
/**
     * byte array to image
     *
     * @param path      이미지 경로
     * @param buffer    이미지 데이터
     * @throws FileNotFoundException
     * @throws IOException
     */
    public static void byte2Image(String path, byte[] buffer) throws FileNotFoundException, IOException {
        FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));
        imageOutput.write(buffer, 0, buffer.length);
        imageOutput.close();
    }

'java > util' 카테고리의 다른 글

[java] - File readLine  (2) 2010.07.01
[java] - File read  (0) 2010.07.01
[java] - 소수점 자르기 (duble type)  (0) 2010.06.30
[java] - base54 String decode  (0) 2010.06.30
[java] - 타입 변환  (0) 2010.06.30
Posted by 짱가쟁이
가끔 실수형을 계산하면 터무니 없이 길게 나오거나.. 몇번째 자리부터 근사값을 구하고 싶을 때 사용하면 됨.

code
/**
    * 적당한 길이로 자른다.
    *
    * @param size   
    * @param value
    * @return
    */
   public static String longDouble2String(int size, double value) {
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(size);
        nf.setGroupingUsed(false);
        return nf.format(value);
    }

Test
System.out.println(StringUtil.longDouble2String(2, 12.123456789));

Result
12.12

'java > util' 카테고리의 다른 글

[java] - File read  (0) 2010.07.01
[java] - byte array to image  (0) 2010.06.30
[java] - base54 String decode  (0) 2010.06.30
[java] - 타입 변환  (0) 2010.06.30
[java] - 외부 프로그램 실행하기..  (0) 2010.06.29
Posted by 짱가쟁이
예전엔 byte가 깨질거 고려해서 hex string으로 변환해서 사용했었는데.. 모바일 쪽에서는 base64를 사용하는 곳이 있는듯 싶다. 뭐 사용하기 나름이니까.. 쩌ㅃ~

Base64로 인코딩된 문자열을 byte array로 디코딩 해준다.
public static byte[] base64Decode(String source) {
       byte[] buffer = null;
   
       BASE64Decoder base64Decoder     = new BASE64Decoder();
       ByteArrayInputStream  in     = new ByteArrayInputStream(source.getBytes());
       ByteArrayOutputStream out     = new ByteArrayOutputStream();

       try {
           base64Decoder.decodeBuffer(in, out);
       } catch (Exception e) {
           e.printStackTrace();
       }
       buffer = out.toByteArray();
       return buffer;
}

'java > util' 카테고리의 다른 글

[java] - byte array to image  (0) 2010.06.30
[java] - 소수점 자르기 (duble type)  (0) 2010.06.30
[java] - 타입 변환  (0) 2010.06.30
[java] - 외부 프로그램 실행하기..  (0) 2010.06.29
[java] - byte array to int  (0) 2010.06.29
Posted by 짱가쟁이
2010. 6. 30. 09:33
출처

int to String
String str = Integer.toString(i);
String str = "" + i;


String to int
int i = Integer.parseInt(str);

int i = Integer.valueOf(str).intValue();


double to String
String str = Double.toString(d);


long to String
String str = Long.toString(l);


float to String
String str = Float.toString(f);


String to double
double d = Double.valueOf(str).doubleValue();


String to long
long l = Long.valueOf(str).longValue();

long l = Long.parseLong(str);


String to float
float f = Float.valueOf(str).floatValue();


decimal to binary
String binstr = Integer.toBinaryString(i);


decimal to hexadecimal
String hexstr = Integer.toString(i, 16);

String hexstr = Integer.toHexString(i);

Integer.toHexString( 0x10000 | i).substring(1).toUpperCase());


hexadecimal(String) to int
int i = Integer.valueOf("B8DA3", 16).intValue();

int i = Integer.parseInt("B8DA3", 16);


ASCII Code to String
String char = new Character((char)i).toString();


Integer to ASCII Code
int i = (int) c;


Integer to boolean
boolean b = (i != 0);


boolean to Integer
int i = (b)? 1 : 0;


'java > util' 카테고리의 다른 글

[java] - 소수점 자르기 (duble type)  (0) 2010.06.30
[java] - base54 String decode  (0) 2010.06.30
[java] - 외부 프로그램 실행하기..  (0) 2010.06.29
[java] - byte array to int  (0) 2010.06.29
[java] - int to byte array  (0) 2010.06.29
Posted by 짱가쟁이
/**
  *
  * @param command
  *     ex> "java -jar jface/util/tool/trang.jar D:\\runtest\\tableconfig.xml D:\\runtest\\TableConfig.xsd"
  */
 public void launcher(String command) {
 
  try {
   String s;
   String error = "";
  
   Process process = new ProcessBuilder("cmd", "/c", command).start();
  
   // 외부 프로그램 출력 읽기
      BufferedReader stdOut   =
       new BufferedReader(new InputStreamReader(process.getInputStream()));
      BufferedReader stdError =
       new BufferedReader(new InputStreamReader(process.getErrorStream()));
 
      // "표준 출력"과 "표준 에러 출력"을 출력
      while ((s =   stdOut.readLine()) != null) {
       System.out.print(s);
      }
      while ((s = stdError.readLine()) != null) {
       error = error + s;      
      }
 
      if(process.exitValue() == 0) {
       MessageDialog.openInformation(parent.getParent().getShell(),
         "XSD generate", parent.getXsdLocationText().getText() + " 를 생성했습니다.");
      } else {
       MessageDialog.openInformation(parent.getParent().getShell(),
         "XSD generate", error + "\n\n" + parent.getXsdLocationText().getText() + " 생성에 실패했습니다.");
      }

  } catch(Exception e) {
   e.printStackTrace();
  }
 }

'java > util' 카테고리의 다른 글

[java] - base54 String decode  (0) 2010.06.30
[java] - 타입 변환  (0) 2010.06.30
[java] - byte array to int  (0) 2010.06.29
[java] - int to byte array  (0) 2010.06.29
[java] - Big Endian to Little Endian  (0) 2010.06.29
Posted by 짱가쟁이
이전버튼 1 2 3 이전버튼