Java I/O


  • Scanner/System.out.println()
  • import java.util.Scanner;
    
    public class ScannerTest {
    
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		
    		System.out.print("정수, 실수, 문자열 문자열(공백 포함) : ");
    		System.out.println("읽은 정수 : "+ sc.nextInt());
    		System.out.println("읽은 실수 : "+ sc.nextDouble());
    		System.out.println("읽은 문자열 : "+ sc.next() + "//");
    		System.out.println("읽은 문자열 : "+ sc.nextLine() + "//");
    	}
    }
    <出力結果>
    整数、実数、文字列文字列(スペースを含む):3713.158スキャナ   スイープボール
    読み出し整数:37
    読み取りエラー:13.158
    読み取り文字列:スキャナ//
    既読文字列:  スキャナーボール//
    スピードが少し速い
  • BufferedReader/StringBuilder
  • import java.io.*;
    import java.util.*;
    
    public class BufferedReaderTest {
    
    	public static void main(String[] args) throws IOException {
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		StringBuilder sb = new StringBuilder();
    
    		String str = br.readLine();
    		char ch[] = str.toCharArray(); //문자열을 char 배열로 바꿔주는 함수
    
    		sb.append("문자열 읽은 결과 : ");
    		for (char c : ch) {
    			sb.append(c);
    		}
    		System.out.println(sb);
    
    		sb.setLength(0); // 스트링빌더 내용 비우기
    		System.out.print("개수를 입력하세요 >> ");
    		int n = Integer.parseInt(br.readLine()); // 문자열로 읽어오므로 정수로 바꾸기
    		
    		// 읽은 문자열을 공백 기준으로 나누기
    		// 뒤에 , " " 넣어주면 속도가 조금 더 빠름
    		StringTokenizer st = new StringTokenizer(br.readLine(), " "); 
    		while (st.hasMoreTokens()) { // StringTokenizer에 토큰이 남아있다면
    			int value = Integer.parseInt(st.nextToken());
    			sb.append(value).append(" ");
    		}
    		System.out.println(sb);
    		br.close(); // 사용 끝났으면 꼭 닫아주기
    	}
    }
    <出力結果>
    緑:ユーザー入力
    BufferedReader Test
    文字列読み込み結果:BufferedReader Test
    個数>>3を入力してください
    1 3 5
    1 3 5