My footsteps

파일 입출력 본문

국비수업/수업정리

파일 입출력

밀김 2023. 3. 2. 10:17
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