입출력

Java 프로그래밍 - 입출력_1

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class Main {

    public static void referInputStream() throws IOException {
//      System.in
        System.out.println("== System.in ==");
        System.out.print("입력: ");
        
        //char값 하나를 받아와서 숫자값을 받아오면 그게 문자라서 아스키코드 값에 매핑되어 있는데
        // 그 아스키코드 값 만큼 빼서 숫자로 변환해주는 작업

        // 한 문자를 읽어와서 숫자로 변환하는데, 입력된 문자는 해당 숫자에 대응되는 아스키코드 값으로 표현됩니다.
        // '0'을 빼면 입력된 숫자를 얻을 수 있습니다.

        int a = System.in.read() - '0';
        System.out.println("a = " + a);
        //입력스트림에 남아있는 개수만큼 바이트 형태로 읽어서 데이터를 소진시켜줌
        //남아 있는 데이터를 없애주기 위한 작업
        System.in.read(new byte[System.in.available()]);

//      InputStreamReader
        System.out.println("== InputStreamReader ==");
        InputStreamReader reader = new InputStreamReader(System.in);
        char[] c = new char[3];
        System.out.print("입력: ");
        //데이터를 읽어서 배열에 저장시켜줌
        reader.read(c);
        System.out.println(c);

//      BufferedReader
        System.out.println("== BufferedReader ==");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("입력: ");
        String s1 = br.readLine();
        System.out.println("s1 = " + s1);
    }

    public static void main(String[] args) throws IOException {

//      1. 입력
//      1-1. 다른 입력 방식 참고
        referInputStream();

//      1-2. Scanner
        System.out.println("== Scanner ==");
        System.out.print("입력1: ");
        Scanner sc = new Scanner(System.in);
        System.out.println(sc.next());
        //엔터키 소진을 위한 작업
        sc.nextLine();

        System.out.print("입력2: ");
        System.out.println(sc.nextInt());
        sc.nextLine();

        System.out.print("입력3: ");
        System.out.println(sc.nextLine());


//      참고) 정수, 문자열 변환
        int num = Integer.parseInt("12345");
        String str = Integer.toString(12345);
        
//      2. 출력
        System.out.println("== 출력 ==");
        System.out.println("Hello");
        System.out.println("World!");

        System.out.print("Hello ");
        System.out.print("World!");

        System.out.printf("Hello ");
        System.out.printf("World!");
        System.out.println();

        String s = "자바";
        int number = 3;

        System.out.println(s + "는 언어 선호도 " + number + "위 입니다.");
        System.out.printf("%s는 언어 선호도 %d위 입니다.\n", s, number);

        System.out.printf("%d\n", 10);
        System.out.printf("%o\n", 10);
        System.out.printf("%x\n", 10);

        System.out.printf("%f\n", 5.2f);
        
        System.out.printf("%c\n", 'A');
        System.out.printf("%s\n", "안녕하세요");

        System.out.printf("%5d\n", 123);
        System.out.printf("%5d\n", 1234);
        System.out.printf("%5d\n", 12345);

        System.out.printf("%.2f\n", 1.126123f);
    }
}
== System.in ==
입력: A
a = 17
== InputStreamReader ==
입력: abc
abc
== BufferedReader ==
입력: seungmin
s1 = seungmin
== Scanner ==
입력1: seok
seok
입력2: 1997
1997
입력3: seok seung min
seok seung min
== 출력 ==
Hello
World!
Hello World!Hello World!
자바는 언어 선호도 3위 입니다.
자바는 언어 선호도 3위 입니다.
10
12
a
5.200000
A
안녕하세요
  123
 1234
12345
1.13

Java 프로그래밍 - 입출력_2

import java.io.*;

public class Main {

    public static void main(String[] args) throws IOException {
//      1. 파일 쓰기
//      FileWriter
        FileWriter fw = new FileWriter("./memo.txt");
        String memo = "헤드 라인\n";
        fw.write(memo);

        memo = "1월 1일 날씨 맑음\n";
        fw.write(memo);
        fw.close();

//      PrintWriter
        PrintWriter pw = new PrintWriter("./memo.txt");
        memo = "헤드 라인";
        pw.println(memo);
        memo = "1월 1일 날씨 맑음";
        pw.println(memo);
        pw.close();

        FileWriter fw2 = new FileWriter("./memo.txt", true);
        memo = "1월 2일 날씨 완전 맑음\n";
        fw2.write(memo);
        fw2.close();

        PrintWriter pw2 = new PrintWriter(new FileWriter("./memo.txt", true));
        memo = "1월 3일 날씨 또 맑음!";
        pw2.println(memo);
        pw2.close();


//      2. 파일 입력
        BufferedReader br = new BufferedReader(new FileReader("./memo.txt"));
        while (true) {
            //한줄 읽어오기 작업
            String line = br.readLine();
            if (line == null) {
                break;
            }
            System.out.println(line);
        }
        br.close();

    }
}

memo.txt

헤드 라인
1월 1일 날씨 맑음
1월 2일 날씨 완전 맑음
1월 3일 날씨 또 맑음!

console

헤드 라인
1월 1일 날씨 맑음
1월 2일 날씨 완전 맑음
1월 3일 날씨 또 맑음!
// Practice
// JamesArthurGosling.txt 파일을 읽은 후 원하는 단어 변경하여 새로 저장해보자.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Practice {
    public static void main(String[] args) throws IOException {
        String inputFile = "./JamesArthurGosling.txt";
        String outputFile = "./JamesArthurGosling_edit.txt";

        // 찾을 단어 / 변경 단어 입력 받기
        System.out.print("찾을 단어: ");
        Scanner sc = new Scanner(System.in);
        String find = sc.nextLine();
        System.out.print("변경 단어: ");
        String to = sc.nextLine();

        // 파일 읽기, 변경 및 저장
        BufferedReader br = new BufferedReader(new FileReader(inputFile));
        FileWriter fw = new FileWriter(outputFile);

        while (true) {
            String line = br.readLine();
            if (line == null) {
                break;
            }
            String newLine = line.replace(find, to);
            fw.write(newLine + '\n');
        }
        br.close();
        fw.close();
    }
}

JamesArthurGosling.txt

제임스 아서 고슬링(James Arthur Gosling, 1955년 5월 19일 ~ )은 캐나다의 소프트웨어 개발자이다.
자바를 최초 개발하여 '자바의 아버지'라 불리며, 가장 영향력 있는 프로그래머들 가운데 한 사람이다.
자바 이외에도 다중 프로세서용 유닉스와 컴파일러, 메일 시스템, 데이터 인식 시스템 등을 개발하였다.
개발자 가운데서는 마이크로소프트의 빌 게이츠(William H. Gates)만큼이나 유명하지만,
개발자 특유의 '몰두', '은둔' 성향 때문에 세상에 널리 알려지지는 않았다.
그는 또 자바 커피를 하루에도 10여 잔 씩 마시는 자바 예찬론자이기도 해서,
자바(Java)라는 명칭은 유명한 커피 재배지인 인도네시아 섬 이름인 자바섬에서 따왔다고 한다.

JamesArthurGosling_edit.txt

제임스 아서 고슬링(James Arthur Gosling, 1955년 5월 19일 ~ )은 캐나다의 소프트웨어 개발자이다.
Java를 최초 개발하여 'Java의 아버지'라 불리며, 가장 영향력 있는 프로그래머들 가운데 한 사람이다.
Java 이외에도 다중 프로세서용 유닉스와 컴파일러, 메일 시스템, 데이터 인식 시스템 등을 개발하였다.
개발자 가운데서는 마이크로소프트의 빌 게이츠(William H. Gates)만큼이나 유명하지만,
개발자 특유의 '몰두', '은둔' 성향 때문에 세상에 널리 알려지지는 않았다.
그는 또 Java 커피를 하루에도 10여 잔 씩 마시는 Java 예찬론자이기도 해서,
Java(Java)라는 명칭은 유명한 커피 재배지인 인도네시아 섬 이름인 Java섬에서 따왔다고 한다.

Tags:

Categories:

Updated:

Leave a comment