자바 날짜 함수 계산

JAVA 2015. 3. 9. 14:26

1)Date date=new Date();-->현재 시간으로 셋팅한다. 

현재시간을 보고 싶은 형식으로 볼려면 

ex)1999-08-05 의 형식으로 보고싶으면 

import java.text.*; 

SimpleDateFormat fmt=new SimpleDateFormat("yyyy-MM-dd"); 

String strDate=new fmt.format(date); 

이려면 strDate가 1999-08-05형식으로 나타남 


2)String 형으로 된1999-06-06을 Date타입으로 변한할려면 

DateFormat fmt=DateFormat.getDataInstance(); 


Date date2=fmt.parse("1999-06-06"); 


3)두 날짜 사이의 기간을 구할려면 

ex)1999-06-06 과 1999-06-01 사이의 기간은 며칠인가 

먼저 1999-06-06 가 String 형이므로 위의2)번에서 

Date 형식으로 바꾸고 1999-06-01도 Date형식으로 바꾼다. 바꾼 Date 형 두 객체를 date1,date2 라고 하자 

long a=date1.getTime(); //밀리세컨드로 변환 

long b=dateb.getTime(); //밀리세컨드로 변환 


long c=a-b; 

int term= c / (1000*60*60*24) =>사이가 3일 차이가 

남을 알수 있다. 


현재 날짜에서 기간차이 만큼 후의 날자를 볼려고 

하면 

GregorianCalendar cal=new GregorianCalendar(); 

-->현재 날짜의 달력을 만듦 


cal.add(cal,3); //현재날짜에 3일을 더한다. 


현재 날짜에서 기간차이 만큼 전의 날자를 볼려고 

하면 


GregorianCalendar cal=new GregorianCalendar(); 

-->현재 날짜의 달력을 만듦 


cal.add(cal,-3); //현재날짜에 -3일을 더한다. 


마지막으로 3일 후나 전의 날짜를 String으로 보여주기 위해서 위의 3일후나 3일 전을 반영한 cal객체에서 

Date d=cal.getTime(); //3일후의 Date를 생성한다. 

String s=fmt.format(d); 


Systme.out.println(s); 3일후의 날짜가 보인다. 

반응형

'JAVA' 카테고리의 다른 글

youtube api연동 샘플 소스  (0) 2015.03.09
자바 xss필터  (0) 2015.03.09
자바 정규식으로 html태그 제거  (0) 2015.03.09
서버 아이피 알아 오기  (0) 2015.03.05
rs 개수 가지고 오기  (0) 2015.03.05
Posted by 질주하는구
,

// 정규표현식으로 제거

 String.replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>","");



 // 한줄로 할려면 아래 추가

 String.replaceAll("("\r|\n|&nbsp;","");

            



.replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>","").replaceAll("\r|\n|&nbsp;","")




replaceFirst() / replaceAll() 메소드(함수)로 문자열을 치환할 때, 대소문자 구분없이 바꾸려면


정규식의 앞 부분에 (?i) 라는 옵션을 넣어주면 됩니다. 물음표+소문자i(아이)입니다.


public class Foo {

  public static void main(String[] args) {


    String s  = "Abc abC ABC abc"; // 원본 문자열

    String s2;


    System.out.println("원본:    " + s);

    System.out.println(); // 줄바꿈



    s2 = s.replaceFirst("(?i)abc", "ZZZ");

    System.out.println("치환(1): " + s2);



    s2 = s.replaceAll("(?i)abc", "ZZZ");

    System.out.println("치환(2): " + s2);


  }

}



자바를 비롯한 C계열의 언어에서, 백슬래쉬(\) 문자는 이스케이프 문자이므로, 그 자체를 직접 표현하기 곤란합니다.


이때는 백슬래쉬(Backslash)를 이중으로 해주면 해결됩니다. 즉 "\" 를 "\\" 이렇게 하는 것입니다.


그리고 자바 정규식에서, 백슬래쉬 1개를 표현하기 위해서는 백슬래시를 4개 적어주면 됩니다.


아래 예제에서 replaceAll() 메소드(함수)는, 정규식을 파라미터로 입력받기에 4개로 표현했습니다.


public class Foo {

  public static void main(String[] args) {


    String s  = "자장면\\짬뽕";    // 원본 문자열 정의

    String s2;


    System.out.println(s);         // 원본 문자열 출력: 자장면\짬뽕




    /////////////////////////////////////////

    // 백슬래쉬 문자열 치환

    /////////////////////////////////////////


    s2 = s.replace("\\", "ABC");

    System.out.println(s2);        // 출력 결과: 자장면ABC짬뽕


    s2 = s.replaceAll("\\\\", "ZZZ");

    System.out.println(s2);        // 출력 결과: 자장면ZZZ짬뽕



  }

}


어떤 문자열 속에, 특정 문자열이 포함되어 있는지 찾으려면,


String 클래스의 matches() 라는 메소드(함수)를 사용하여 찾을 수 있습니다. 정규식을 입력받습니다.


import java.io.*;

import java.util.regex.*;


class Foo {

  public static void main(String[] args) {


    String s = "abcdoooooefghi";


    try {

      if (s.matches(".*ooo.*"))

        System.out.format("매치되었습니다.%n");

      else

        System.out.format("그런 문자열이 없습니다.%n");


    } catch (PatternSyntaxException e) { // 정규식에 에러가 있다면

        System.err.println(e);

        System.exit(1);

    }



  }

}



 replaceAll에서 정규표현식 특수문자 취급 자바



1. []으로 싸주면 문자자체로 인식하는 것들.


* ⇒ [*]

+ ⇒ [+]

$ ⇒ [$]

| ⇒ [|]

? ⇒ [?]


2. \\를 붙여줘야 하는 것들.


( ⇒ \\(

) ⇒ \\)

{ ⇒ \\{

} ⇒ \\}

^ ⇒ \\^

[ ⇒ \\[

] ⇒ \\]



3. 자바의 특수문자는 \을 쓴다.


" ⇒ \"



4. 나머지 부호들은 괜찮은 듯 하다.

확인된 것.


! # % & @ ` : ; - . < > , ~ '



ex ) 위에 놈들 다 지워 보자. - 4번 제외


String c = "?$(){}*+^|[]";

c = c.replaceAll("[?][$]\\(\\)\\{\\}[*][+]\\^[|]\\[\\]", "");


반응형

'JAVA' 카테고리의 다른 글

자바 xss필터  (0) 2015.03.09
자바 날짜 함수 계산  (0) 2015.03.09
서버 아이피 알아 오기  (0) 2015.03.05
rs 개수 가지고 오기  (0) 2015.03.05
resultset생성시 인자값을 이용한 설정  (0) 2015.03.05
Posted by 질주하는구
,

InetAddress inet= InetAddress.getLocalHost(); 

String serverip = inet.getHostAddress(); 



반응형

'JAVA' 카테고리의 다른 글

자바 날짜 함수 계산  (0) 2015.03.09
자바 정규식으로 html태그 제거  (0) 2015.03.09
rs 개수 가지고 오기  (0) 2015.03.05
resultset생성시 인자값을 이용한 설정  (0) 2015.03.05
JAVA ZIP파일 생성  (0) 2015.03.05
Posted by 질주하는구
,

rs 개수 가지고 오기

JAVA 2015. 3. 5. 10:20

ResultSet 에서 전체 row를 구할려고 했는데 막상 해보니 에러가 발생

rs.last();

int totalRowCount = rs.getRow();

rs.first();


Exception 내용이

------------------------------------------------------

java.sql.SQLException: 전방향 전용 결과 집합에 부적합한 작업이 수행되었습니다 : last

------------------------------------------------------

그래서 찾아보니까 아래와 같이 statement 를 생성할때 옵션을 지정해 줘야 한다.

conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

그리고 

rs.first();

을 하게 되면 rs.next()을 한번 한 효과가 있다.

그래서 rs를 가져올때 rs.next() 부터 하게 되면 첫번째 데이타를 가져오지 못한다.

rs.first();

while(rs.next()) {

rs.getString("aa");

}

위와같이 하게 되면 첫번째 데이타를 가져오지 못하니 첫번째 데이타는 

while(rs.next()) 전에 먼저 한번 get 해야 한다.


반응형

'JAVA' 카테고리의 다른 글

자바 정규식으로 html태그 제거  (0) 2015.03.09
서버 아이피 알아 오기  (0) 2015.03.05
resultset생성시 인자값을 이용한 설정  (0) 2015.03.05
JAVA ZIP파일 생성  (0) 2015.03.05
JAVA PHP MD5 연동이 안되는 경우  (0) 2015.03.04
Posted by 질주하는구
,

ResultSet 객체 생성시에 생성자를 이용한 설정


pstm = con.prepareStatement(sql.toString(), ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); 


 


ResultSet.TYPE_SCROLL_INSENSITIVE <--  ResultSet 에서 rs.next() 를 사용하게 되면 다음 결과 row를 가져오구 다음에는 이전 값을 사용못하게 되죠.. 그러나 이 옵션으로 ResultSet을 만들면 한번 커서가 지나간 다음에 다시 되돌릴 수가 있습니다. 


5번 질문에서 사용하신 rs.last(); 를 사용하시려면 필수 입니다.


ResultSet.CONCUR_READ_ONLY <-- ResultSet으로 가져온 row의 값을 다시 Insert나 Update로 사용하지 않겠다는 의미

반응형
Posted by 질주하는구
,

JAVA ZIP파일 생성

JAVA 2015. 3. 5. 09:38

zip파일 생성 관련 프로그램 샘플 입니다.

 

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import net.sf.jazzlib.Adler32;

import net.sf.jazzlib.CheckedOutputStream;

import net.sf.jazzlib.ZipEntry;

import net.sf.jazzlib.ZipOutputStream;

public class CompressSource {

public CompressSource() {}



final String SLASH = "/";

final int BUFFER = 2048;



// zipName : 압축하여 생겨날 파일의 이름과 풀 경로

// target : 압축시킬 폴더

public void compress( String zipName, String target ) {

 BufferedInputStream origin = null;

 ZipOutputStream zout = null;

 try {

 zout = new ZipOutputStream( new BufferedOutputStream(new CheckedOutputStream( new FileOutputStream( zipName ), new Adler32() ) ) );



 File topFile = new File( target );

 File[] subFiles = topFile.listFiles();



 for ( int i = 0 ; i < subFiles.length ; i++ ) {

 compressSelectedPath( origin, zout, subFiles[i], topFile.getName() + SLASH );

 }

 } catch (Exception e) {

 e.printStackTrace();

 } finally {

 try {

 if ( zout != null ) zout.close();

 } catch (IOException e) {}

 }

}



private void compressSelectedPath( BufferedInputStream origin, ZipOutputStream zout, File file, String parentPath ) {

 if ( file.isDirectory() ) {

 File[] files = file.listFiles();

 if ( files.length != 0 ) { // 폴더이고 파일을 가지고 있는 경우 압축한다.

 for ( int i = 0 ; i < files.length ; i++ ) {

 compressSelectedPath( origin, zout, files[i], parentPath + file.getName() + SLASH );

 } 

 } else {

 // 폴더이지만 파일을 가지고 있진 않은 경우 폴더 자체만 압축한다.

 try {

 ZipEntry entry = new ZipEntry( parentPath + file.getName() + SLASH );

 zout.putNextEntry( entry );

 } catch (IOException e) {

 } finally {

 try {

 if ( origin != null ) origin.close();

 } catch (IOException e) {}

 }  

 }

 } else {

 // 파일은 경우 압축

 // 원하는 만큼의 상위경로를 포함 시켜 압축해 줘야 함. --> parentPath

 try {

 byte data[] = new byte[BUFFER];



 origin = new BufferedInputStream( new FileInputStream( file ), BUFFER);

 ZipEntry entry = new ZipEntry( parentPath + file.getName() );

 zout.putNextEntry( entry );



 int count;

 while( ( count = origin.read( data, 0, BUFFER) ) != -1 ) {

 zout.write(data, 0, count );

 }

 } catch (IOException e) {

 } finally {

 try {

 if ( origin != null ) origin.close();

 } catch (IOException e) {}

 }

 }



 }

}

 

반응형
Posted by 질주하는구
,

JAVA에서 MD5로 생성한 내용이 PHP에서 정상적으로 처리 되지 않을때

JAVA의 MD5 코딩을 변경 해야 합니다.


public static String md5Encoding(String orgStr) throws Exception {

    MessageDigest md = MessageDigest.getInstance("MD5");

    md.update(orgStr.getBytes());

    byte[] encodedStr = md.digest();


    return new String(encodedStr);

}

이런 내용의 코딩을

public static String getHexCode(String inputValue) {

      MessageDigest md5 = null;

       try {

          md5 = MessageDigest.getInstance("MD5");

         } catch(Exception e) {

         e.printStackTrace();

      }

 

      String eip; 

      byte[] bip;

      String temp = "";

      String tst = inputValue;

              

      bip = md5.digest(tst.getBytes());

      for(int i=0; i < bip.length; i++) {

          eip = "" + Integer.toHexString((int)bip[i] & 0x000000ff);

          //System.out.println(i + " : " + eid);

          if(eip.length() < 2) eip = "0" + eip;

          temp = temp + eip;

      }

      return temp;

    }

와 같이 Integer Class의 toHexString() 사용해서 변환을 한번더 해주는 방식을 사용 해서 해결 할 수 있습니다.


반응형
Posted by 질주하는구
,

자바 컴파일과 실행 에 사용되어지는 javac, java 명령어의 옵션 을 다음과 같이 정리하였습니다.


javac - 자바컴파일러로써, 자바코드를 작성한 소스파일(.java)을 자바 가상머신이 인식할수 있는 바이트 코드(.class)

타입으로 변환시켜주는 명령어 입니다.

사용법: javac <options> <souce files>

예를들어, Hello.java, Greeting.java 두개의 파일이 존재한다면,

javac Hello.java Greeting.java

javac *.java (*을 사용해서, 모든 확장자가 .java인 파일을 컴파일할수 있다.)

 

1) 옵션: 


a) -classpath:

 -classpath(cp) path(파일 절대 경로):

 컴파일러가 컴파일 하기 위해서 필요로 하는 참조할 클래스 파일들을 찾기 위해서 컴파일시 파일 경로를 지정해주는

옵션. 예를 들어,  Hello.java파일이 C:\Java 디렉터리에 존재하고, 필요한 클래스 파일들이 C:\Java\Engclasses에 위치한다면,

javac -classpath C:\Java\Engclasses C:\Java\Hello.java 로 해주면 된다. 만약 참조할 클래스 파일들이 C:\Java\Engclasses외의 

다른 디렉터리에도 존재한다면, C:\Java\Korclasses 일경우, 

javac -classpath C:\Java\Engclasses;C;\Java\Korclasses C:\Java\Hello.java

그리고, 현재 디렉터리역시 포함하고 싶다면,

javac -classpath .;C:\Java\Engclasses;C;\Java\Korclasses C:\Java\Hello.java

기본적으로, dos에서는 .는 현재 디렉터리를 의미하고, ..는 현재 디렉터리의 상위디렉터리를 의미한다. 

또한 classpath 대신 단축어인 cp를 사용해도 된다.

javac -cp C:\Java\Engclasses C:\Java\Hello.java  

 

b) -d: 

 -d directory

 클래스 파일을 생성할 루트 디렉터리를 지정합니다.

기본적으로 컴파일러는 -d옵션을 주지 않으면, 소스파일이 위치한 디렉터리에 클래스 파일을 생성시킵니다.

예를 들어,  Hello.java파일이 C:\Java 디렉터리에 존재하고 클래스 파일의 루트디렉터리를 C:\Java\Classfiles라고 하면, 

javac -d C:\Java\Classfiles C:\Java\Hello.java 입니다.

만약 -d 옵션을 사용하려고 하는데, 루트디렉터리(위예에서는 C:\Java\Classfiles) 가 존재 하지 않는다면, 

"The system cannot find the path specified"라는 에러 메시지를 보게 됩니다. 

현재 작업 디렉터리가 C:\Java\Classfiles 에 위치하면, 

javac -d .\Classfiles Hello.java 와 같이 상대 디렉터리로 표현할수 있습니다.

java class내에서 package를 선언한 경우 package별 폴더를 생성하고 해당 폴더에(package) compile한다.

 

c) -encoding:

-encoding encoding name

소스 파일에 사용된 문자열 인코딩을 설정합니다.

만약 위옵션이 설정되어 있지 않으면, 플래폼의 기본적인 컨버터가 사용되어 집니다.

 

d) -g:

모든 디버깅 정보를 생성시킵니다.

만약 위옵션이 설정되어 있지 않으면, 기본적으로, 라인넘버만 생성시킵니다.

-g:none: 디버깅 정보를 전혀 생성 시키지 않습니다.

-g:{lines, vars, source}:

위처럼 명시적으로, 몇몇 디버깅 정보를 생성시킬수 있습니다.

lines은 라인정보, vars는 지역변수, sounce는 소스 파일 정보를 나타냅니다.

 

e) -nowarn: 

경고 메시지 (warning message)를 생성시키지 않습니다.

 

f) -verbose: 

컴파일러와 링커가 현재 어느 소스파일이 컴파일되고 있고, 어느 파일이 링크되고 있는지 

그정보를 출력한다.

 

h) -deprecation: 

소스 코드내에서, 사용되어진 deprecated API의 위치 를 출력 합니다.

ex)

C:\Java> javac World.java

Note: World.java uses a deprecated API. Recompile with "-deprecation" for details

.

1 warning

C:\Java> javac -deprecation World.java

World.java:52: Note: The method java.awt.Dimension size() in class java.awt.Compon

ent has been deprecated.

Dimension d = size();

Note: World.java uses a deprecated API. Please consult the documentation for a be

tter alternative.

 

i) -sourcepath:

-sourcepath 소스패스 

소스파일의 위치를 지정합니다.

 

j) -target:

-target 자바버젼

지정된 자바버젼의 VM에서 작동 되어지도록 클래스파일을 생성 시킵니다.

1.1

jvm 1.1 버젼에서 호환되어질수 있는 클래스 파일생성

1.2

jvm 1.2 버젼에서 호환되어질수 있는 클래스 파일생성

1.3

jvm 1.3 버젼에서 호환되어질수 있는 클래스 파일 생성

ex)

javac -target 1.2 Helloworld.java 

 

k) -bootclasspath 패스:

특정한 bootstrap또는 확장 클래스를 지정할수 있다.

기본적으로, 자바컴파일러는 javac(컴파일러명령)이 설치된 플래폼의 bootstrap과 확장클래스들을 통해서, 컴파일작업을 수행하지만,

bootclasspath 옵션을 사용하면, cross-compiling이라고 해서, 다른 자바플래폼의 bootstrap과 확장클래스들을 통해서, 컴파일 할수 있는 기능을 지원한다.

예를들어,

javac -target 1.1 -bootclasspath jdk1.1.7/lib/classes.zip -extdirs "" OldCode.java

컴파일러에게 현재 자신의 bootstrap을 사용하지 말고, jdk1.1.7/lib/classes.zip bootstrap클래스들을 사용해서 컴파일 하라고 

명령하는것이다.

참고로, 모바일자바에서, 모바일폰에 설정된, jvm에 맞도록, 소스코드를 컴파일하기 위해서, 주로 사용되어지는 옵션이다.

 

 

l) -extdirs 디렉터리:

특정한, 확장 디렉토리를 지정한다.cross-compiling시 주로, 사용되어지는 옵션이면, 각디렉터리들은 콜론(:)에 의해서, 분리되어진다.

컴파일시, 기술한 디렉터리의 클래스 파일을 참조한다.

 

========================================================

출처 : http://blog.naver.com/darkhan1?Redirect=Log&logNo=10009423507

 

java 컴파일시 알아 두면 유용하게 쓰일거 같다..

 

 

 

###################################################################

###################################################################

 

 

Usage: javac <options> <source files>

where possible options include:

  -g                                  Generate all debugging info

  -g:none                          Generate no debugging info

  -g:{lines,vars,source}     Generate only some debugging info

  -nowarn                         Generate no warnings

  -verbose                        Output messages about what the compiler is doing

  -deprecation                   Output source locations where deprecated APIs are used

  -classpath <path>           Specify where to find user class files and annotation processors

  -cp <path>                     Specify where to find user class files and annotation processors

  -sourcepath <path>         Specify where to find input source files

  -bootclasspath <path>      Override location of bootstrap class files

  -extdirs <dirs>                Override location of installed extensions

  -endorseddirs <dirs>       Override location of endorsed standards path

  -proc:{none,only}            Control whether annotation processing and/or compilation is done.

  -processor <class1>[,<class2>,<class3>...]

                                       Names of the annotation processors to run; bypasses default discovery process

  -processorpath <path>      Specify where to find annotation processors

  -d <directory>                 Specify where to place generated class files

  -s <directory>                 Specify where to place generated source files

  -implicit:{none,class}      Specify whether or not to generate class files for implicitly referenced files

  -encoding <encoding>       Specify character encoding used by source files

  -source <release>          Provide source compatibility with specified release

  -target <release>            Generate class files for specific VM version

  -version                         Version information

  -help                             Print a synopsis of standard options

  -Akey[=value]                Options to pass to annotation processors

  -X                                 Print a synopsis of nonstandard options

  -J<flag>                         Pass <flag> directly to the runtime system

  

  

  

  

Usage: java [-options] class [args...]

           (to execute a class)

   or  java [-options] -jar jarfile [args...]

           (to execute a jar file)

where options include:

    -client   to select the "client" VM

    -server   to select the "server" VM

    -hotspot   is a synonym for the "client" VM  [deprecated]

                  The default VM is client.

                  

    -cp <class search path of directories and zip/jar files>

    -classpath <class search path of directories and zip/jar files>

                  A ; separated list of directories, JAR archives, and ZIP archives to search for class files.

    -D<name>=<value>

                  set a system property

    -verbose[:class|gc|jni]

                  enable verbose output

    -version      print product version and exit

    -version:<value>

                  require the specified version to run

    -showversion  print product version and continue

    -jre-restrict-search | -jre-no-restrict-search

                  include/exclude user private JREs in the version search

    -? -help      print this help message

    -X            print help on non-standard options

    -ea[:<packagename>...|:<classname>]

    -enableassertions[:<packagename>...|:<classname>]

                  enable assertions

    -da[:<packagename>...|:<classname>]

    -disableassertions[:<packagename>...|:<classname>]

                  disable assertions

    -esa | -enablesystemassertions

                  enable system assertions

    -dsa | -disablesystemassertions

                  disable system assertions

    -agentlib:<libname>[=<options>]

                  load native agent library <libname>, e.g. -agentlib:hprof

                    see also, -agentlib:jdwp=help and -agentlib:hprof=help

    -agentpath:<pathname>[=<options>]

                  load native agent library by full pathname

    -javaagent:<jarpath>[=<options>]

                  load Java programming language agent, see java.lang.instrument

    -splash:<imagepath>

                  show splash screen with specified image

  

 

M) package 선언된 Java class 실행시키기

- package위치는 CLASSPATH 하위 폴더부터로 인식한다. 따라서 Package폴더의 Root가 ClassPath에 지정되든지

.(현위치)를 ClassPath에 등록 후 현 위치 아래서부터 package의 위치를 지정한다.

java package.class명 (현위치 아래에 package폴더가 존재)

java com.test.SampleMain



반응형
Posted by 질주하는구
,

System.getProperty(String key)

 

아래는 key 값과. 그 결과값의 예이다.

 

java.runtime.name ===> Java(TM) 2 Runtime Environment, Standard Edition 

sun.boot.library.path ===> C:\j2sdk1.4.2_03\jre\bin 

java.vm.version ===> 1.4.2_03-b02 

java.vm.vendor ===> Sun Microsystems Inc. 

java.vendor.url ===> http://java.sun.com/ 

path.separator ===> ; 

java.vm.name ===> Java HotSpot(TM) Client VM 

file.encoding.pkg ===> sun.io 

user.country ===> KR 

sun.os.patch.level ===> Service Pack 4 

java.vm.specification.name ===> Java Virtual Machine Specification 

user.dir ===> C:\Documents and Settings\Administrator\바탕 화면 

java.runtime.version ===> 1.4.2_03-b02 

java.awt.graphicsenv ===> sun.awt.Win32GraphicsEnvironment 

java.endorsed.dirs ===> C:\j2sdk1.4.2_03\jre\lib\endorsed 

os.arch ===> x86 

java.io.tmpdir ===> C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ 

line.separator ===> 

java.vm.specification.vendor ===> Sun Microsystems Inc. 

user.variant ===> 

os.name ===> Windows 2000 

sun.java2d.fontpath ===> 

java.library.path ===> C:\j2sdk1.4.2_03\bin;.;C:\WINNT\system32;C:\WINNT;.;C:\j2 

sdk1.4.2_03\bin;C:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Pro 

gram Files\Oracle\jre\1.1.8\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbe 

m;F:\apache-ant-1.5.3-1\bin;C:\Program Files\SecureCRT\;C:\Program Files\SSH Com 

munications Security\SSH Secure Shell 

java.specification.name ===> Java Platform API Specification 

java.class.version ===> 48.0 

java.util.prefs.PreferencesFactory ===> java.util.prefs.WindowsPreferencesFactory 

os.version ===> 5.0 

user.home ===> C:\Documents and Settings\Administrator 

user.timezone ===> 

java.awt.printerjob ===> sun.awt.windows.WPrinterJob 

file.encoding ===> MS949 

java.specification.version ===> 1.4 

user.name ===> Administrator 

java.class.path ===> .; 

java.vm.specification.version ===> 1.0 

sun.arch.data.model ===> 32 

java.home ===> C:\j2sdk1.4.2_03\jre 

java.specification.vendor ===> Sun Microsystems Inc. 

user.language ===> ko 

awt.toolkit ===> sun.awt.windows.WToolkit 

java.vm.info ===> mixed mode 

java.version ===> 1.4.2_03 

java.ext.dirs ===> C:\j2sdk1.4.2_03\jre\lib\ext 

sun.boot.class.path ===> C:\j2sdk1.4.2_03\jre\lib\rt.jar;C:\j2sdk1.4.2_03\jre\li 

b\i18n.jar;C:\j2sdk1.4.2_03\jre\lib\sunrsasign.jar;C:\j2sdk1.4.2_03\jre\lib\jsse 

.jar;C:\j2sdk1.4.2_03\jre\lib\jce.jar;C:\j2sdk1.4.2_03\jre\lib\charsets.jar;C:\j 

2sdk1.4.2_03\jre\classes 

java.vendor ===> Sun Microsystems Inc. 

file.separator ===> \ 

java.vendor.url.bug ===> http://java.sun.com/cgi-bin/bugreport.cgi 

sun.cpu.endian ===> little 

sun.io.unicode.encoding ===> UnicodeLittle 

sun.cpu.isalist ===> pentium i486 i386 

반응형
Posted by 질주하는구
,

BufferedInputStream  fin  = new BufferedInputStream(new FileInputStream(new File("c:/test/a.txt")));


BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Java/test1.txt")));


Stream은 byte 단위로 데이터를 처리할 수 있는 메서드를 제공하는 클래스이고

Reader, Writer는 char 단위로 데이터를 처리할 수 있는 메서드를 제공하는 클래스이다.
인코딩이 잘 맞다면 한글과 같은 내용을 담은 파일에 대해서 Reader, Writer가 사용하기 훨씬 편하지만, 인코딩이 잘 안 맞다면 맘 편하게 byte 단위로 처리해야 할 수도 있다

반응형
Posted by 질주하는구
,