반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 동기화
- ObjectInputStream
- Linux세팅
- StringReader
- include지시자
- 아이디중복
- 표현 언어
- isinterrupted()
- Daemon()
- interrupted()
- ThreadGroup()
- 리눅스셋팅
- sleep()메소드
- Linux셋팅
- 상관서브쿼리
- InputDialog
- 리눅스세팅
- first-of-child
- String char[] 형변환
- interrupt()
- 메모리스트림
- 상관 서브 쿼리
- first-child
- StringWriter
- include 지시자
- char[] String 형변환
- include액션태그
- 스레드그룸
- ID중복
- MemoryStream
Archives
- Today
- Total
다연이네
[days24] InputStream - 사진 정보 2진수로 출력 / 바이트씩 읽기 / String입력받기 본문
반응형
1. 사진 정보를 2진수로 출력하기
2. 2진수를 8자리씩 찍기
3. 0.1초씩 시간을 두고 한 자씩 출력하기
package test;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class Re02 {
public static void main(String[] args) {
String fileName = ".\\src\\days24\\자바IO.PNG"; //이미 있는 사진
InputStream is = null;
try {
is = new FileInputStream(fileName);
int b = 0;
while((b=is.read())!=-1) {
//1. 사진정보를 2진수로 출력해보자
//System.out.println(Integer.toBinaryString(b));
//2. 2진수로 8자리씩 찍고싶다
String v = Integer.toBinaryString(b);
int i = Integer.parseInt(v); //2진수 String을 int형으로 변환
//System.out.println(String.format("%08d", i));
//3. 한 자씩 텀을 두고 찍어보자
String x = String.format("%08d", i);
for (int j = 0; j < x.length(); j++) {
char one = x.charAt(j);
System.out.print(one); // 0 1 0 1 0 1 1
try {
Thread.sleep(100); //0.1초씩 기다리자
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (Exception e) {
System.out.println("읽고자 하는 파일을 찾을 수 없습니다.");
}finally {
if(is!=null)
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
내가 원하는 바이트씩 읽기 작업 (1024 바이트씩 읽기 작업)
package test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
public class Re02 {
public static void main(String[] args) {
String fileName = ".\\src\\days24\\자바IO.PNG";
//내가 원하는 바이트씩 읽기 작업 (1024 바이트씩 읽기 작업)
InputStream is=null;
try {
is= new FileInputStream(fileName);
byte [] b = new byte[1024]; //버퍼(buffer)
// is 파일 읽기 용도의 바이트 스트림으로부터 1024바이트 읽어와서 -> byte [] b에 저장하겠다
int n=-1;
while ((n =is.read(b))!=-1) { //버퍼에 1024개 읽어와서 저장 한 것
//만약 1325바이트라면 1024읽어와서 저장하고 그 다음 301바이트 읽어와서 저장
//읽은 데이터는 b라고하는 버퍼에 담겨져 있음
for (int i = 0; i < n; i++) {
System.out.println(b[i]);
//왜 아까랑 달리 음수값이 나오는지 ? 아까는 0~255 int값 / 원래는 바이트 값은 음수이다
}
}
} catch (FileNotFoundException e) {
System.out.println("> 읽고자하는 파일을 찾을 수 없습니다.");
} catch (IOException e) {
e.printStackTrace();
}finally {
if(is!=null)
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("=END=");
}
}
InputStream을 통해 이름 입력받기
package test;
import java.io.IOException;
import java.io.InputStream;
public class Re02 {
public static void main(String[] args) {
byte [] buffer = new byte[1024];
InputStream is = System.in;
try {
int n = 0;
System.out.print("이름 ? ");
n = is.read(buffer);
String name = new String(buffer, 0, n);
System.out.println(name);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
출력값
이름 ? 배다연
배다연
반응형
'Java' 카테고리의 다른 글
[days25] 파일 복사하기 (1. 실행파일 2.txt파일) (0) | 2020.10.25 |
---|---|
[days25] FileOutputStream을 이용해 파일 만들기 (0) | 2020.10.25 |
[days24] 자바 입출력(I/O) 이론 개념 (0) | 2020.10.23 |
[days24] Annotation (0) | 2020.10.23 |
[문제] 열거형 활용 예제 (0) | 2020.10.23 |
Comments