My footsteps
파일 입출력 본문
728x90
- 객체의 생성 : FileOutputStream fout = new FileOutputStream(); / 사용방법 : fout.write(30); fout이라는 변수에 30을 넣어서 출력하고싶다
- 모든 함수는 객체에 다 포함되어 있다
- 객체지향은 현실세계의 내용을 그대로 반영한것이다
- CSV(영어: comma-separated values)는 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일이다
package ex4.save;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Scanner;
import ex4.Fileinputoutput;
import java.io.IOException;
public class Program {
public static void main(String[] args) throws IOException {
//데이터를 출력하는 방법
String fileName = "res/test.txt";//경로지정(res폴더안에 이 텍스트파일을 넣었다)
FileOutputStream fos = new FileOutputStream(fileName);
//(fileName)변수를 넣어서 출력하고싶다 근데 fileName은 경로니까 거기에 파일이 만들어짐
fos.write(57);
fos.flush();
//57이 안나오고 아스키코드인 9가 나옴
PrintStream fout = new PrintStream(fos);
//fos에 'a'를 출력하고싶다 해서 57에 a가 출력이되니까 57도 덩달아 문자로 바뀌는듯?
fout.print("a");
fout.close();
fos.close();
//스트림을 닫을때 꼭 close를 해줘야한다
System.out.println("작업완료"); //출력값 9a
//문자출력//
//데이터를 읽는 방법
// Binary(숫자) Read
// Character(문자) Read
FileInputStream fis = new FileInputStream(fileName);
// fis.read(); //1바이트를 바이너리로 읽음
Scanner fscan = new Scanner(fis);
//문자로 읽는방법
String line = fscan.nextLine();
System.out.println(line);
fscan.close();
fis.close();
System.out.println("읽기 완료");
}
}
- 스트림은 쉽게 이야기해서 Byte 형태로 데이터를 운반하는데 사용되는 연결통로
- 하나의 스트림으로 입력과 출력을 동시에 처리 할 수 없다
암기!!!!
//파일 경로
String fileName = "res/lotto.csv";
FileInputStream fis = new FileInputStream(fileName);
//fileName를 읽는다
Scanner fscan = new Scanner(fis);
//fis를 입력받아서 fscan에 넣은다음에
String line = fscan.nextLine();
//fscan에 들어온 nextLine(=fis)를 line에 넣어서
fscan.close();
fis.close();
//닫을땐 안에꺼부터 역순으로 닫아야한다. 스캔부터 닫기
System.out.println(line);
//line을 출력한다
- 문자열은 값변수가 아닌 참조변수다 문자열은 객체
String name1 = "아이유";
String name2 = "아이유";
System.out.println(name1==name2); //true
//아이유라는 값 자체를 비교하는것이 아닌 참조하는 메모리(=아이유) 주소값이 같은지 비교하는것
String name1 = "아이유";
String name2 = new String("아이유");//새로운 객체를 만듦
System.out.println(name1==name2); //false
//두개는 다른객체가 되어서 거짓이 나옴
String name1 = "아이유";
String name2 = new String("아이유");
System.out.println(name1=="아이유");//true
//객체 끼리 비교한것이기 때문에 true
String name1 = "아이유";
String name2 = new String("아이유");
System.out.println(name1.equals(name2)); //true
//.equals( )를 해줌으로써 안에 있는 메모리를 비교해서 true가 나오나?
- substring(3) : 3번째문자부터 그 뒤에까지만 출력 / substring(4,8) : 4번째 문자부터 7번째 문자까지 출력(8번째는 출력x)
- indexOf : 인덱스의 값(=위치)을 출력
728x90
'국비수업 > 수업정리' 카테고리의 다른 글
HTTP / 자바스크립트 변수 keyword (0) | 2023.03.03 |
---|---|
코드 모듈화 / 다차원 배열 (0) | 2023.03.03 |
웹퍼블리싱(CSS) / 1 (0) | 2023.02.28 |
로또 배열 랜덤값 (0) | 2023.02.28 |
웹퍼블리싱(HTML) / 2 (0) | 2023.02.25 |