package ch19;

import java.io.*;

public class Ch1909
{
 public static void main(String[] args) throws IOException
 {
  //버퍼의 사용목적 : 입출력 장치의 잦은 엑세스를 줄이고자
  //버퍼를 사용하여 성능향상을 도모한다.
  //BufferedInputStream은 InputStream의 하위 클래스에
  //언제든지 전부 결합하여 적용이 가능.
  //ButteredInputStream in = new BufferedInputStream(System.in);
  BufferedInputStream in = new BufferedInputStream(new FileInputStream(
   "D:\\study\\java\\Project\\sample\\src\\ch19\\Ch1906.java"));
  int ch;
  StringBuffer sb = new StringBuffer();
  while ((ch=in.read())!=-1)
  {
   sb.append((char)ch);
  }
  in.close();
  System.out.println(sb.toString());
 
  //BufferedOutputStream out = new BufferedOutputStream(System.out);
  BufferedOutputStream out = new BufferedOutputStream
  (
   new FileOutputStream
   (
    "D:\\study\\java\\Project\\sample\\src\\ch19\\Output.java"
   )
  );
 
  for(int i=0;i<sb.length();i++)
  {
   ch = sb.charAt(i);
   out.write(ch);
  }
  out.close();
 
 }
}

Posted by 말없제이
,

package ch19;

import java.io.*;

public class Ch1908
{
 public static void main(String[] args) throws IOException
 {
  FileReader  in = new FileReader(new File("D:\\study\\java\\Project\\sample\\src\\ch19\\Ch1906.java"));
  int ch;
  StringBuffer stringBuffer = new StringBuffer();
  while((ch=in.read())!=-1)
  {
   stringBuffer.append((char)ch);
  }
  System.out.println(stringBuffer);
 
  FileWriter out = new FileWriter(new File("D:\\study\\java\\Project\\sample\\src\\ch19\\Output.java"));
  out.write(stringBuffer.toString());
  out.close();
 }
}

Posted by 말없제이
,

package ch19;

import java.io.*;

public class Ch1907
{
 public static void main(String[] args) throws IOException
 {
  //FileInputStream 클래스 : 텍스트화일 뿐만 아니라
  //바이너리화일까지 읽어들일 수 있다.
 
  FileInputStream in = new FileInputStream(new File("D:\\study\\java\\Project\\sample\\src\\ch19\\Ch1906.java"));
  int ch;
  //속도를 위해 StringBuilder 교체.
  //String result ="";
  StringBuilder result = new StringBuilder();
  while((ch=in.read())!=-1)
  {
   //속도를 위해 StringBuilder 교체.
   //result += (char)ch;
   result.append((char)ch);
  }
  in.close();
 
  System.out.println(result);
 
  FileOutputStream out = new FileOutputStream(new File("D:\\study\\java\\Project\\sample\\src\\ch19\\Output.java"));
  for(int i=0;i<result.length();i++)
  {
   ch=result.charAt(i);
   out.write(ch);
  }
  out.close();
 }
}

Posted by 말없제이
,

package ch19;

import java.io.*;

public class Ch1906
{
 public static void main(String[] args) throws IOException
 {
  //Reader시리즈 스트림클래스는 문자열처리에 적합
  InputStreamReader in = new InputStreamReader(System.in);
  int ch;
  String result="";
  while((ch=in.read())!= -1)
  {
   result +=(char)ch;  
  }
  System.out.println("result : "+result);
 
  OutputStreamWriter out = new OutputStreamWriter(System.out);
  out.write(result);
  out.close();
 }
}

Posted by 말없제이
,

package ch19;
//입출력스트림클래스 사용시 임포트할 패키지.
import java.io.*;

public class Ch1905
{

 public static void main(String[] args) throws IOException
 {
  //Stream이란 : 데이터와 데이터가 이동되는 연결되는 통로.
 
  //InputStream 클래스 : 입력스트리림중 가장 상위클래스이며
  //추상클래스 이므로 개체의 직접 생성이 불가능
 
  //Stream으로 시작되는 클래스는 바이너리데이터를 다루는데 유리
  //read() : 입력스트림에서 한글자를 읽어옴.
  //InputStream은 한글은 깨짐.
  InputStream in = System.in;
  int ch;
 
  String result="";
  //Ctrl-Z 누를때까지 무한반복한다.
  while((ch=in.read())!=-1)
  {
   result += (char)ch;
  }
 
  System.out.print("Result : "+result);
  in.close();
   
  // close없을경우 문제 발생 가능성있는 3가지.
  //1. 입출력 스트림
  //2. DB : webapplication
  //3. 통신
 
  //OutputStream : 출력스트림중 최상위 클래스로 추상 클래스
 
  //문자열 result를 콘솔출력에 내보내는 역활
  OutputStream out = System.out;
  for(int i=0;i<result.length();i++)
  {
   ch = result.charAt(i);
   out.write(ch);
   //용도를 알아보자꾸나. flush
   //out.flush();
  }
  //out.close();
 }
}

Posted by 말없제이
,

package ch21;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridBagLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import java.awt.event.KeyEvent;
import java.awt.Dimension;
import javax.swing.BoxLayout;

public class Ch2102 extends JFrame {

 private static final long serialVersionUID = 1L;

 private JPanel jContentPane = null;

 private JPanel jPanel = null;

 private JButton jButton = null;

 private JButton jButton1 = null;

 private JButton jButton2 = null;

 /**
  * This is the default constructor
  */
 public Ch2102() {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(490, 260);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane() {
  if (jContentPane == null) {
   jContentPane = new JPanel();
   jContentPane.setLayout(new BorderLayout());
   jContentPane.add(getJPanel(), BorderLayout.NORTH);
  }
  return jContentPane;
 }

 /**
  * This method initializes jPanel
  *  
  * @return javax.swing.JPanel
  */
 private JPanel getJPanel() {
  if (jPanel == null) {
   FlowLayout flowLayout = new FlowLayout();
   flowLayout.setAlignment(java.awt.FlowLayout.CENTER);
   jPanel = new JPanel();
   jPanel.setLayout(flowLayout);
   jPanel.add(getJButton(), null);
   jPanel.add(getJButton1(), null);
   jPanel.add(getJButton2(), null);
  }
  return jPanel;
 }

 /**
  * This method initializes jButton
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton() {
  if (jButton == null) {
   jButton = new JButton();
   jButton.setIcon(new ImageIcon(getClass().getResource("/ch21/button1.jpg")));
   jButton.setRolloverIcon(new ImageIcon(getClass().getResource("/ch21/button4.jpg")));
  }
  return jButton;
 }

 /**
  * This method initializes jButton1
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton1() {
  if (jButton1 == null) {
   jButton1 = new JButton();
   jButton1.setMnemonic(KeyEvent.VK_UNDEFINED);
   jButton1.setRolloverIcon(new ImageIcon(getClass().getResource("/ch21/button5.jpg")));
   jButton1.setIcon(new ImageIcon(getClass().getResource("/ch21/button2.jpg")));
  }
  return jButton1;
 }

 /**
  * This method initializes jButton2
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton2() {
  if (jButton2 == null) {
   jButton2 = new JButton();
   jButton2.setIcon(new ImageIcon(getClass().getResource("/ch21/button3.jpg")));
   jButton2.setRolloverIcon(new ImageIcon(getClass().getResource("/ch21/button6.jpg")));
   jButton2.setMnemonic(KeyEvent.VK_UNDEFINED);
  }
  return jButton2;
 }

}  //  @jve:decl-index=0:visual-constraint="10,10"

Posted by 말없제이
,

package ch21;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Color;
import java.awt.ComponentOrientation;
import javax.swing.JButton;
import java.awt.Rectangle;
import javax.swing.JLabel;
import javax.swing.border.BevelBorder;

public class Ch2101 extends JFrame {

 private static final long serialVersionUID = 1L;

 private JPanel jContentPane = null;

 private JButton jButton = null;

 private JLabel jLabel = null;

 /**
  * This is the default constructor
  */
 public Ch2101() {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(300, 200);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
  this.setVisible(true);
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane() {
  if (jContentPane == null) {
   jLabel = new JLabel();
   jLabel.setBounds(new Rectangle(176, 46, 75, 38));
   jLabel.setText("JLabel");
   jLabel.setToolTipText("라벌도 적용");
   jLabel.setBorder(new BevelBorder(BevelBorder.RAISED));
   jContentPane = new JPanel();
   jContentPane.setLayout(null);
   jContentPane.setBackground(new Color(238, 129, 238));
   jContentPane.add(getJButton(), null);
   jContentPane.add(jLabel, null);

  }
  return jContentPane;
 }
 /**
  * This method initializes jButton
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton() {
  if (jButton == null) {
   jButton = new JButton();
   jButton.setBounds(new Rectangle(57, 40, 106, 47));
   jButton.setText("Button");
   jButton.setBorder(new BevelBorder(BevelBorder.RAISED));
   }
  return jButton;
 }

 public static void main(String[] args)
 {
  new Ch2101();
 }
}

Posted by 말없제이
,

Thread 예제 둘..

DevTool/Java 2009. 6. 17. 18:18

package ch15;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridBagLayout;
import java.awt.FlowLayout;
import javax.swing.JTextField;
import javax.swing.JButton;

public class Clock extends JFrame
{

 private static final long serialVersionUID = 1L;

 private JPanel jContentPane = null;

 private JPanel jPanel = null;

 private JTextField TextClock = null;

 private JButton jButton = null;

 /**
  * This is the default constructor
  */
 public Clock()
 {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize()
 {
  this.setSize(300, 200);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane()
 {
  if (jContentPane == null)
  {
   jContentPane = new JPanel();
   jContentPane.setLayout(new BorderLayout());
   jContentPane.add(getJPanel(), BorderLayout.NORTH);
  }
  return jContentPane;
 }

 /**
  * This method initializes jPanel
  *  
  * @return javax.swing.JPanel
  */
 private JPanel getJPanel()
 {
  if (jPanel == null)
  {
   jPanel = new JPanel();
   jPanel.setLayout(new FlowLayout());
   jPanel.add(getTextClock(), null);
   jPanel.add(getJButton(), null);
  }
  return jPanel;
 }

 /**
  * This method initializes TextClock
  *  
  * @return javax.swing.JTextField
  */
 private JTextField getTextClock()
 {
  if (TextClock == null)
  {
   TextClock = new JTextField();
   TextClock.setColumns(15);
  }
  return TextClock;
 }

 /**
  * This method initializes jButton
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton()
 {
  if (jButton == null)
  {
   jButton = new JButton();
   jButton.setText("시작");
  }
  return jButton;
 }

}

****** Clocka.java ********
package ch15;

import java.util.Calendar;

public class Clocka
{
 public Clocka()
 {
  // TODO 자동 생성된 생성자 스텁
 }
 
 class Treadmodel extends Thread
 {
  private int i=0;
  @Override
  public void run()
  {
   // TODO 자동 생성된 메소드 스텁
   //super.run();
   for(;;)
   {
    Calendar today = Calendar.getInstance();
    int hour = today.get(Calendar.HOUR);
    int min = today.get(Calendar.MINUTE);
    int sec = today.get(Calendar.SECOND);
    System.out.println(hour+":"+min+":"+sec);
   
    try
    {
 //    Thread클래스를 계승받은것이 아니라 sleep 정적호출
     Thread.sleep(5000);
    }
    catch (InterruptedException e)
    {
     // TODO 자동 생성된 catch 블록
     e.printStackTrace();
    }
   }
  }
 }
 
 public static void main(String[] args)
 {
  new Clocka();
 }
}

Posted by 말없제이
,

package ch15;

import java.util.Calendar;

public class Ch1502 implements Runnable
{
 public Ch1502()
 {
  // TODO 자동 생성된 생성자 스텁
  //Thread 개체변수를 만들고 생성자에 클래스 자기자신을 전달
  Thread t =new Thread(this);
  t.start();
 }
 public static void main(String[] args)
 {
  new Ch1502();
 }
 
 public void run()
 {
  // TODO 자동 생성된 메소드 스텁
  for(;;)
  {
   Calendar today = Calendar.getInstance();
   int hour = today.get(Calendar.HOUR);
   int min = today.get(Calendar.MINUTE);
   int sec = today.get(Calendar.SECOND);
   System.out.println(hour+":"+min+":"+sec);
   
   try
   {
//    Thread클래스를 계승받은것이 아니라 sleep 정적호출
    Thread.sleep(5000);
   } catch (InterruptedException e)
   {
    // TODO 자동 생성된 catch 블록
    e.printStackTrace();
   }
  }
 }

}

Posted by 말없제이
,

package ch15;

public class Ch1501
{
  public Ch1501()
 {
   //쓰레드를 실행해달라고 가상자바머신에 요청
   Treadmodel t = new Treadmodel();
   t.start();

 }
 
 //innerClass로 쓰레드....
 //Thread 클래스를 계승받는 클래스로 thread를 사용..(통신 ..)
  //장점 : 여러개의 쓰레드를 만들어 실행할 수 있는 장점
  //단점 : 멤버변수의 접근에 관한 프로그램처리.
 class Treadmodel extends Thread
 {
  private int i=0;
 
  @Override
  public void run()
  {
   // TODO 자동 생성된 메소드 스텁
   //super.run();
   //무한반복을 해야함.
   
   while(true)
   {
    i++;
    System.out.println("i : "+i);
    //쓰레드의 휴식시간을 시정
    try
    {
     sleep(1000);
    } catch (InterruptedException e)
    {
     // TODO 자동 생성된 catch 블록
     e.printStackTrace();
    }
   }
  }
 }
 
 public static void main(String[] args)
 {
  new Ch1501();
 }
}

Posted by 말없제이
,