본문 바로가기

728x90
반응형

입출력

[java] 입출력(BufferedReader, BufferedWriter, StringBuilder) 언젠가는 한 번 정리해보려 했던 것을 이제 글 한 번 올려보려고 합니다! ◇ 입출력 전달 방법 입출력에 대해서 가장 먼저 배우는 것은 Scanner를 이용해 입력하고 System.print 함수들로 출력합니다. Scanner는 프로그램 → 하드 디스크로 바로 데이터를 전송하면서 입출력에 시간이 오래 걸립니다. 하지만 Buffer는 바로 하드 디스크로 전달하는 것이 아니라 중간에 메모리 버퍼로 전달합니다. 입력할 때 하나씩 입력해서 메모리 버퍼에 쌓이면서 출력할때는 한 번에 하드 디스크로 데이터를 전달합니다. 아래의 그림을 보시면 좀 더 이해하기 쉬울 겁니다. Scanner는 위의 그림에서 메모리 버퍼가 없습니다. 하드디스크는 원래 속도가 느리기 때문에 데이터 입출력에 시간이 오래 걸립니다. 따라서 중간에.. 더보기
[java]이것이 자바다 부록 Java UI 6-1 (Swing을 이용한 텍스트 컴포넌트 2) 1. JEditorPane ▷ 다양한 타입의 문서를 보여주거나 편집이 가능한 멀티 라인의 텍스트 컴포넌트 ▷ 단순 텍스트, HTML 타입의 문서를 지원 ▷ HTML 문서를 표시할 경우 setEditable(false)를 호출해 편집할 수 없도록 하고, 사용자가 링크를 클릭할 경우 HyperlinkListener 등록해 HyperlinkEvent 이벤트를 처리할 수 있음 ▷ HyperlinkEvent는 마우스를 링크 위로 가져갔을 경우, 링크 바깥으로 가져갔을 경우, 링크를 클릭했을 경우 모두 발생 ◎ HTML을 삽입하는 예제 import java.awt.BorderLayout; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.. 더보기
[java]이것이 자바다 부록 Java UI 6 (Swing을 이용한 텍스트 컴포넌트) 1. 텍스트 컴포넌트 ▷ 텍스트를 나타내거나 편집할 수 있는 컴포넌트를 말함 ▷ JLabel, JTextField, JPasswordField, JTextArea, JEditorPane, JTextPane 등이 있음 ▷ JLabel만 텍스트를 편집할 수 없고, 나머지는 텍스트를 편집할 수 있음 ▷ 편집 가능한 텍스트 컴포넌트는 모두 JTextComponent를 상속받아 각 컴포넌트의 특징에 맞게 설계됨 ▷ 단일 라인 텍스트 편집 : TextField, JPasswordField, 멀티라인 편집 : JTextArea, JEditorPane, JTextPane (1) JLabel ▷ JLabel은 편집할 수 없는 한 줄의 간단한 텍스트와 정적인 이미지를 보여주는 컴포넌트 ▷ 텍스트와 이미지의 배치는 정렬과 .. 더보기
[java] 이것이 자바다 ch19 네트워크 입출력(JSON, TCP 채팅) 6. JSON 데이터 형식 ▷ 네트워크로 전달하는 데이터 형식 ▷ 두 개 이상의 속성이 있으면 객체 { }로 표기, 두 개 이상의 값이 있으면 배열 [ ]로 표기 1 객체 표기 { "속성명" : 속성값, "속성명" : 속성값, ... } 속성명 : 반드시 "로 감싸야함 속성값으로 가능한 것 → "문자열", 숫자, true/false → 객체 { ... } → 배열 [ ... ] 2 배열 표기 [항목, 항목, ...] 항목으로 가능한 것 → "문자열", 숫자, true/false → 객체 { ... } → 배열 [ ... ] { "id": "winter", "name": "한겨울", "age": 25, "student": true, "tel": { "home": "02-123-1234", "moblie":.. 더보기
[java] 이것이 자바다 ch19 네트워크 입출력(UDP, 동시 요청 처리) 4. UDP ▷ 발신자가 일방적으로 수신자에게 데이터를 보내는 방식. TCP처럼 연결 요청 및 수락 과정이 없기 때문에 TCP보다 데이터 전송 속도가 상대적으로 빠릅니다. ▷ 데이터 전달의 신뢰성보다 속도가 중요하다면 UDP를 사용하고, 데이터 전달의 신뢰성이 중요하다면 TCP를 사용합니다. ▷ DatagramSocket은 발신점과 수신점에 해당하고 DatagramPacket은 주고받는 데이터에 해당합니다. ◎ UDP 서버 1. DatagramSocket 객체를 생성할 때에는 다음과 같이 바인딩할 Port 번호를 생성자 매개값으로 제공 DatagramSocket datagramSocket = new DatagramSocket(50001);​ 2. receiver() 메소드는 데이터를 수신할 때까지 블로킹.. 더보기
[java] 이것이 자바다 ch19 네트워크 입출력(IP, TCP) 1. 네트워크 기초 ◎ 네트워크 ▷ 네트워크 : 여러 컴퓨터들을 통신 회선으로 연결한 것 ▷ LAN(Local Area Network) : 가정, 회사, 건물, 특정 영역에 존재하는 컴퓨터를 연결한 것 ▷ WAN(Wild Area Network : LAN을 연결한 것(인터넷) 1. IP : PC의 네트워크 연결을 위한 고유 주소(식별할 수 있는 고유 번호, 중복 될 수 없습니다.) ▷ 사설 IP : 공유기에서 내부적으로 쓰이는 IP ▶ 192.168.X.X ▶ 172.16.X.X ▶ 10.X.X.X ▷ 공인 IP : 실질적인 통신을 위한 IP (인터넷 연결) ▷ PC : 사설 IP → 내부 통신 간에 사설 IP로 통신 외부(인터넷) 통신을 할 때는 사설 IP → 공인 IP 변환 시켜서 통신 2. SM(S.. 더보기

728x90
반응형