728x90

파일 입출력에서  if(var_byte == 10 || var_byte == 13) continue;    이부분이 왜 있는것인가 고민하다가 찾아보니 
아스키10번은 그줄의 맨 앞으로  13번은 바로 다음줄로 이동하는 코드였다 
그래서 저 코드가 나오면 다음코드를 읽지않고 바로 do{ 처음으로 가는것이다

ex> 

예를 들어....

 

Hi my name is _

 

... 라고 치고 _ 위치가 커서라고 치면....

 

Hi my name is

_

 

... 와 같이 커서가 다음 줄 첫번째 위치로 가려면 실제적으로

 

Hi my name is

                         _

 

... 와 같이 줄을 넘기고

 

Hi my name is

_

 

... 와 같이 옮긴 다음 줄의 처음으로 지이익 당기는 두단계로 이루어집니다.

 

여기서 다음 줄로 넘기는 것이 Line Feed 아스키코드 13 이고

옮기 다음 줄에서 제일 처음으로 지이익 당기는 것이 CR 아스키코드 10

... 이라고 생각하시면 무난하리라 생각됩니다.

 

printf 같은 곳에서 \n 의 개행문자로 위와 같은 동작을 하는데

문자는 \n 이지만 이에 대응되는 아스키코드는 CR+LF 라고 보아야 합니다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.io.*;
 
public class Ex_Inputstream 
{
    
    public static void main(String[] args)
    {
        int var_byte=-1;
        
        System.out.println("값을 입력하세요 :");
        
        do
        {
            try
            {
                var_byte = System.in.read();
            }
            catch(IOException e)
            {
                e.printStackTrace();
            }    
            
             // 아스키코드 10=>     Line feed(줄 맨처음으로) 13=>다음줄로    
            if(var_byte == 10 || var_byte == 13) continue;        ← 이부분
            if(var_byte == -1) break;            
            System.out.println("읽은값 : "+(char)var_byte);            
        }
        while(true);
    }
 
}



알아본 김에 아스키코드표






Posted by 앗뜨거
,