• 티스토리 홈
  • 프로필사진
    Song hyun
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
Song hyun
  • 프로필사진
    Song hyun
    • 분류 전체보기 (780)
      • 백준 (0)
      • 일본어 (0)
        • 모모타로TMC (0)
      • 영어 (2)
        • Diary (0)
        • Toast Masters (2)
      • 메모 (13)
      • 설치 메뉴얼 (30)
      • Java (178)
      • MySQL (60)
      • JSP (67)
      • Springboot (46)
      • HTML,CSS, JS (71)
        • HTML (8)
        • CSS (12)
        • JavaScript (37)
        • HTML&CSS 스터디 (13)
      • C++ (7)
      • Linux (7)
      • JPA (34)
      • Kotlin (2)
      • Flutter (42)
      • Error Note (39)
      • 디자인 패턴 (12)
      • 디지털논리회로 (4)
      • 데이터베이스 시스템 (8)
      • 알고리즘 (7)
      • 운영체제 (3)
      • 이산수학 (3)
      • 인공지능 (1)
      • 자료 구조 (14)
        • 기본 개념 (14)
        • 자료구조 스터디 (0)
      • 💡My project (76)
        • 팩맨 : Java Swing 게임 제작 프로젝트 (6)
        • 네이트톡 : Java 소켓 통신 프로젝트 (4)
        • 포켓옥션 : HikariCP&JDBC CRUD 프.. (3)
        • 이지 부산 : BDIA-Devton 2024 프로.. (20)
        • 그린 유니버시티 : JSP를 사용한 학사관리 프로.. (1)
        • 애드 포커 : 웹 소켓과 Spring을 사용한 카.. (1)
        • 셸위 : 게임 친구 매칭 사이트 (21)
        • 다모아 : 개발자 중개 플랫폼 (20)
      • 📗스터디 (13)
        • CNN : 웹개발 스터디 (10)
        • Node&React로 유튜브 사이트 만들기 (3)
      • 📙독서 및 강연 기록 (36)
        • 강연 (14)
        • 독서 (22)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [Java] 81. 파일 출력 스트림 (바이트)
        2024년 05월 16일
        • Song hyun
        • 작성자
        • 2024.05.16.오전10:08
        728x90
        반응형

        [Java] 80. 파일 출력 스트림 (바이트)

        1. 버퍼란?

        2. 버퍼의 기본 원리

        3. 버퍼 사용의 단점


         

        1. 버퍼란?

         

        2. 버퍼의 기본 원리

        (1) 효율성 증가

        (2) 시스템 부하 감소

        (3) 데이터 전송 속도 개선

         

        3. 버퍼 사용의 단점

         

        package io.ch02;
        
        import java.io.FileNotFoundException;
        import java.io.FileOutputStream;
        import java.io.IOException;
        
        public class MyFileOutputStream {
        
        	// 코드의 시작점
        	public static void main(String[] args) {
        		
        		long start=System.nanoTime();
        		
        		// 데이터가 존재
        		String data = "Hello, Java FileOutputStream \n 안녕 반가워";
        		
        		// 1. 파일에 데이터를 저장하고 싶다면(바이트 기반)
        		// 자바 8버전부터 제공
        		// try-catch-resource -> 자동으로 자원을 닫아준다.
        		
        		try(
        				FileOutputStream fos = new FileOutputStream("output.txt", false)
        		) { 
        			// data(string) 가지고 있는 문자열들을 바이트 배열로 반환 처리
        			
        			byte[] bytes = {72,101,108,108, 111}; //hello
        			
        			//byte[] bytes = data.getBytes();
        			System.out.println("byte : "+bytes);
        			for(int i=0; i<bytes.length; i++) {
        				System.out.println("bytes[i] : "+bytes[i]);
        			}
        			
        			//  연결된 스트림을 활용해 바이트 배열을 파일에 흘려 보냄
        			fos.write(bytes);
        			System.out.println("파일출력 스트림을 통해서 데이터를 씀");
        			
        		} catch (FileNotFoundException e) {
        			System.out.println("파일이 없음");
        		} catch (IOException e) {
        			e.printStackTrace();
        		}
        		
        		// 동작 이해해 보기
        		// 파일에 바이트 단위로 데이터를 쓰고
        		// 그 파일을 열었을 때, 글자로 보이는 이유는 
        		// 파일을 읽는 프로그램이 파일 내에 바이트 데이터를
        		// 문자로 해석해서 보여주었다. (문자 인코딩)
        		long end=System.nanoTime();
        		long duration =  end-start;
        		System.out.println("스트림 기반 파일 입출력 소요 시간 : "+duration);
        	}
        
        }
        package io.ch02;
        
        import java.io.BufferedOutputStream;
        import java.io.FileOutputStream;
        
        public class MyByfferedOutputStream {
        	
        	public static void main(String[] args) {
        		long start = System.nanoTime();
        		String data = "기반 스트림 + 보조 스트림을 활용해보자";
        		
        		// 현재 시간(측정)
        		
        		// try-catch-resource 활용
        		try (
        				FileOutputStream fos = new FileOutputStream("output2.txt");
        				BufferedOutputStream bos = new BufferedOutputStream(fos);
        				){
        			// 코드 수행 부분
        			byte[] bytes = data.getBytes();
        			
        			// 보조 스트림 (버퍼)
        			bos.write(bytes);
        			
        			// 버퍼에 데이터가 남아 있다면 중복된 데이터를 쓸 수 있다.
        			// 한 번 사용한 다음에
        			bos.flush(); // flush -> 물을 내리다
        			
        			System.out.println("보조 스트림을 활용한 파일 출력 완료");
        			// 실행에 걸리는 시간을 측정해보고 싶다!
        			
        		} catch (Exception e) {
        			e.printStackTrace();
        		}
        		
        		// 현재 시간(종료)
        		long end = System.nanoTime();
        		// 종료 - 시작 = 소요 시간
        		long duration = end - start;
        		System.out.println("소요 시간 : "+duration);
        		// 나노초는 10억분의 1
        		
        	}
        	
        }
        728x90
        반응형

        'Java' 카테고리의 다른 글

        [Java] 83. 파일 Copy 예제: 기반 스트림에 확장을 붙여 더욱 빠르게 연산시켜보자.  (0) 2024.05.17
        [Java] 82. 파일 Copy(바이트 기반 입/출력)  (0) 2024.05.16
        [Java] 80. 바이트 기반의 파일 입력 스트림  (0) 2024.05.14
        [Java] 79. 표준 입출력  (0) 2024.05.14
        [Java] 78. 자바 I/O  (0) 2024.05.14
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
      • [Java] 80. 파일 출력 스트림 (바이트)
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바

      단축키

      내 블로그

      내 블로그 - 관리자 홈 전환
      Q
      Q
      새 글 쓰기
      W
      W

      블로그 게시글

      글 수정 (권한 있는 경우)
      E
      E
      댓글 영역으로 이동
      C
      C

      모든 영역

      이 페이지의 URL 복사
      S
      S
      맨 위로 이동
      T
      T
      티스토리 홈 이동
      H
      H
      단축키 안내
      Shift + /
      ⇧ + /

      * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.