[계산] //1. 아래와 같이 파일 복사되도록 프로그램을 짜시오 // //대상 파일: a.pptx //사본 이름: d.pptx package IOStream; import java.io.*; import java.util.*; public class Test2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("대상 파일: "); String input = sc.nextLine(); System.out.print("사본 이름: "); String output = sc.nextLine(); try (InputStream in = new FileInputStream(input); OutputStream out = new FileOutputStream(output)) { int data; data = in.read(); while (true) { if (data == -1) break; out.write(data); } } catch (IOException e) { e.printStackTrace(); } } }
[결과값] 대상 파일: C:\Users\USER\Documents\IT\열혈자바(ppt)\열혈 Java Chapter 02.pptx 사본 이름: C:\Users\USER\Documents\IT\열혈자바(ppt)\열혈 Java Chapter 02복사본.pptx
[계산] //data.txt를 console 화면에 뿌리도록 하시오. package IOStream; import java.io.*; import java.util.*; public class Test3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("읽을 파일: "); String src = sc.nextLine(); try (Reader in = new FileReader(src)) { int data; while (true) { data = in.read(); // 2byte씩 읽음 if (data == -1) break; System.out.print((char) data); } } catch (IOException e) { e.printStackTrace(); } } }
[결과값] 읽을 파일: data.txt A한 읽을 파일: C:\Users\USER\Documents\workspace-sts-3.9.11.RELEASE\EX\src\UpDownGame.java import java.util.Scanner; public class UpDownGame { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = (int) (Math.random() * 100) + 1; boolean run = true; while (run) { for (int i = 9; i >= 0; i--) { System.out.print("숫자를 입력해주세요 : "); int input = sc.nextInt(); if (input > num) { System.out.println("Down ====> " + i + "번 남아 있습니다."); } else if (input < num) { System.out.println("Up ====> " + i + "번 남아 있습니다."); } else if (input == num) { System.out.println("일치"); break; } if (i == 0) { System.out.println("기회를 전부 소진하였습니다. \n정답은 [" + num + "] 입니다."); } } System.out.println("게임시작 y / 게임종료 n"); String rePlay = sc.next(); if (rePlay.equals("y") || rePlay.equals("Y")) { continue; } else { System.out.println("종료합니다."); break; } } } }
[계산] package IOStream; import java.io.*; public class A_BufferedWriterTest { public static void main(String[] args) { String ks = "공부에 있어서 돈이 꼭 필요한 것은 아니다."; String es = "Life is long if you know how to use it."; try (BufferedWriter bw = new BufferedWriter(new FileWriter("String.txt"))) { bw.write(ks, 0, ks.length()); bw.newLine(); // 줄 바꿈 문자를 삽입(운영체제 별 줄 바꿈의 표시 방법이 다름) bw.write(es, 0, es.length()); } catch (IOException e) { e.printStackTrace(); } } }
[결과값]
[계산] package IOStream; import java.io.*; public class A_BufferedReaderTest { public static void main(String[] args) { try (BufferedReader br = new BufferedReader(new FileReader("String.txt"))) { String str; while (true) { str = br.readLine(); // 한 문장 읽어 들이기 if (str == null) break; System.out.println(str); } } catch (IOException e) { e.printStackTrace(); } } }
[결과값] 공부에 있어서 돈이 꼭 필요한 것은 아니다. Life is long if you know how to use it.
단일 프로세스 : 명령어 기반, 한 번에 한 작업만 실행 가능.(Dos, CMD)
멀티 프로세스 : 여러 개의 프로그램 동시 작업 가능.(windows)
멀티 프로세스 원리 : CPU는 하나지만, 속도가 빠르기 때문에 번갈아 실행시킨다.(컨텍스트 스위칭)
(A프로그램 실행 후 한 번 중단했다가 B프로그램을 실행시킴 | 끊기지 않고 동시 실행된다.)
▶ 프로세스 : 실행 중인 프로그램, 자원(resources)과 스레드로 구성
▶ 스레드 : 프로세스 내에서 실제 작업을 수행.
모든 프로세스는 하나 이상의 쓰레드를 가지고 있다.
(하나의 프로그램(프로세스) 안에 또 다른 프로그램(프로세스))
1.main자체가 한 개의 스레드. main스레드가 돌아간다. main함수를 먼저 돌린다.
2.ThreadTest 프로세스가 돌아간다.
[계산] package ThreadTest; public class MultiThreadTest { public static void main(String[] args) { // 프로그램이 3개 돌아간다. MultiThreadTest main(), MyThread1 run(), MyThread2 run() // 스레드는 별도의 프로그램이기 때문에 main이 먼저 끝나고 나서도 MyThread1과 MyThread2이 실행된다. MyThread1 th1 = new MyThread1(); MyThread2 th2 = new MyThread2(); th1.start(); // OS한테 스레드 돌릴 거니까 돌아갈 수 있도록 방을 하나 생성해달라 요청.(OS가 스레드를 관리) th2.start(); // th1.run(); // 으로 호출하면 실행되지만 절대 하면 안된다. } } class MyThread1 extends Thread { // 동시에 돌리고 싶은 작업을 분리 public void run() { // run() : main의 역할 for (int i = 0; i < 300; i++) { System.out.print("-"); } } // run() } class MyThread2 extends Thread { public void run() { for (int i = 0; i < 300; i++) { System.out.print("|"); } } // run() }
[결과값] ------------------------------||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||--------------||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||