복습
- 버퍼를 이용한 입출력은 다양한 장치에서도 동일하다.
- System.in : 콘솔입력
- System.out : 콘솔출력
- FileInputStream fis = new FileInputStream("파일경로"); // new연산자를 통해 객체를 만듦
- fis.read(); 를 사용했다면 문자하나씩 읽어옴
- next(); 단어단위, 공백전까지
- nextLint() 문자열단위, 줄단위
- 모든 함수는 객체를 통해서 사용
- Scanner scan = new Scanner(fis); App -> Scanner -> fis -> 파일이용
산술연산
*산술 연산시 출력절차 주의
print(x+y)로 쓰면 x+y로만 보이지만
print(3+y)
print(7)
print('7')로 출력되는 절차가있다.
print(x+y)로 쓰면 x+y로만 보이지만
print(3+4.0)
print(7.0)
print('7.0')로 출력되는 절차가있다.
*연산자와 자료형
10/3 -> 3 : 정수/정수는 정수
10/3.0 ->3.3333 : 정수/실수는 실수
*나머지연산자 : 반복적인계산 할때자주쓰임
반드시 암기
단항 연산자
- kor++; 후위식 연산자의 의미 :
kor = kor+1; - 단항연산자 ++,--는 앞뒤로 쓸 수 있다.
- 후위식은 세미콜론(;)지나고 증가한다.
비교/논리 연산자
==같다
= 대입연산자와 주의
관계 연산자
범위가 갈라질때는 ||
한범위안에 들을때는 &&
비트 논리 연산자
비트연산자 | ||
& | and (교집합) | 모든 비트가 1일때만 1 |
^ | xor (차집합) | 모든 비트가 같으면 0,하나라도 다르면1 |
| | or (합집합) | 모든비트중 한 비트라도 1이면 1 |
~ | not (부정) | 각 비트의 부정, 0면 1,1이면 0 |
쉬프트 연산자
연산자암기할것
FileInputStream 과 FileOutputStream 사용
메모장에 데이터를 적은 뒤 저장.
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Scanner;
class Hello {
public static void main(String[] args) throws IOException {
int kor, eng, math;
int total;
float avg;
kor = 0;
eng = 0;
math = 0;
//여기에 성적을 입력하는 코드를 작성하시오
//data.txt파일에서 국어,영어,수학성적을 입력받으시오
// 1.파일 입력 스트림 객체를 fis라는 이름으로 만든다.
FileInputStream fis = new FileInputStream("C:\\Users\\yh\\git\\repository3\\JavaPrj\\data.txt");
// 2. fis를 Scanner로 포장해서 사용한다.
Scanner scan1 = new Scanner(fis);
kor = scan1.nextInt(); //파일에서 성적을 불러온다.
eng = scan1.nextInt();
math = scan1.nextInt();
scan1.close(); // Scanner먼저닫기
fis.close(); // FileInputStream 닫기
FileOutputStream fos = new FileOutputStream("C:\\Users\\yh\\git\\repository3\\JavaPrj\\data.txt");
// 2. fis를 Scanner로 포장해서 사용한다.
PrintStream fout = new PrintStream(fos);
kor = kor +1; //파일에서 성적을 불러오면서 숫자 1증가
eng = eng +1;
math = math +1;
fout.printf("%d %d %d", kor,eng,math);
fout.close();
fos.close();
total = kor + eng + math;
avg = total / 3.0f;
//System.out.printf("total is %d\n", total);
System.out.println("┌─────────────────────────────────────────┐");
System.out.println("│ 성적 출력 │");
System.out.println("└─────────────────────────────────────────┘");
System.out.printf("국어 : %d\n",kor);
System.out.printf("영어 : %d\n",eng);
System.out.printf("수학 : %d\n",math);
System.out.printf("총점 : %d\n",total);
System.out.printf("평균 : %5.2f\n",avg);
System.out.println("──────────────────────────────────────────");
}
}
FileInputStream fis = new FileInputStream("파일경로");
- FileInputStream : 입력스트림,파일을 불러오기 위해 사용
- fis : 연산자 new를 통해 객체 fis생성
- File관련 스트림은 에러가 발생하므로 예외처리해준다.
Scanner scan = new Scanner(fis);
- Scanner : java.util에있는 클래스
- fis를 매개변수로 받고Scanner의 객체 scan 생성
- import 처리
kor = scan.nextInt();
- scan을 통해 입력받은 정수값을 kor에 저장한다.
scan.close();
- 안쪽에있는 Scanner를 먼저 닫아준다.
fis.close();
- 다음 FileInputStream을 닫아준다. 닫지않으면 계속 파일을 열어둔것과 같음.
FileOutputStream fos = new FileOutputStream("파일경로");
-
FileOutputStream : 출력스트림, 파일을 출력하기 위해 사용
-
fos : 연산자 new를 통해 객체 fos 생성
-
File스트림은 에러가 발생하므로 예외처리해준다.
-
File관련 스트림은 에러가 발생하므로 예외처리해준다.
PrintStream fout = new PrintStream(fos);
- PrintStream : 출력클래스
- fos를 매개변수로 받고 PrintStreamd의 객체 fout을 생성
- 메모장출력은 없는 함수이므로 새로운 객체생성
kor = kor + 1;
- 입력받은 kor에 숫자 1을 더하고 kor에 저장
fout.printf("%d %d %d",kor,eng,math);
- four통해 출력을 하되, 메모장에 출력한다.
- 메모장에 각각 1이 더한값이 출력된다.
fout.close();
- 안쪽에있는 PrintStream을 먼저 닫아준다.
fos.close();
- 다음 FileOutputStream을 닫아준다.
System.out.printf("국어: %d", kor);
- System.out은 PrintStream에 이미 포함되어있어 바로 사용가능
- (연산자 new를 통해 객체만들 필요 없다)
- printf()에 서식문자열 %d를 넣어 kor를 불러온다.
'2021 Newlecture > JAVA' 카테고리의 다른 글
복합 대입연산자 / 삼항연산자 (0) | 2021.03.08 |
---|---|
제어구조 / FileStream을 통해 파일복사 (0) | 2021.03.05 |
쉬프트연산 / 진법 / 0x000000ff과 교집합 (0) | 2021.03.05 |
FileInputStream으로 Bitmap File Size 출력 (0) | 2021.03.04 |
System.in.read() / Scanner / next() / 메모장내용 출력하기 (0) | 2021.03.02 |
이스케이프문자, 포멧문자열, 형식지정자, print()함수 (0) | 2021.02.26 |
개체와 객체 / 아스키코드/ 이클립스설치/System.out.println() (0) | 2021.02.25 |
자바 프로그래밍이란 ? (1) | 2021.02.25 |