05 문자 단위 입출력

프로그래밍/Java 2007. 11. 27. 13:31 Posted by galad

/******************************************************************************
*   파일      : FileReaderWriter.java
*   용도      : FileReaderWriter
*   작성자   : 성홍제
*   작성일   : 2006. 08. 03
*   Version : 1.0
******************************************************************************/

import java.io.*;

public class FileReaderWriter
{
    /// Fields
    /// Costructor
    /// Method
    /// Main Method
    public static void main(String[] args) throws IOException, FileNotFoundException
    {  
        if(args.length<2)
        {
            System.out.println("원본 파일과 복사될 파일의 이름을 입력 하십시오!");
            System.exit(-1);
        }
       
        int i = 0, len = 0;
       
        System.out.println("복사할 원본: "+args[0]);
        System.out.println("복사할 대상: "+args[1]);
       
        FileReader in = new FileReader(new File(args[0]));
        BufferedReader br = new BufferedReader(in);
       
        FileWriter out = new FileWriter(args[1], false);
        BufferedWriter bout = new BufferedWriter(out);
        PrintWriter pout = new PrintWriter(out);   

        // 출력 시 편리한 클래스. 버퍼도 자체 내장하고 있다.
       
        char[] buffer = new char[256];  // Buffered- 를 사용하지 않고 이렇게 사용해도 되지만
                                                     // Buffered- 를 사용하는 것이 더 빠른다.
       
        String line = "";
         
        while((line = br.readLine()) != null)
        {
            i++;
            //bout.write(line+"\r\n");  // 끝에 줄바꿈 문자를 추가
           
            if(i < 10)
            {
                //bout.write(line+"\n");  // 끝에 줄바꿈 문자를 추가
                pout.println("0" + i + " " + line);     // 자동으로 끝에 줄바꿈 문자를 추가한다.
                System.out.println("0" + i + " " + line);
            }
            else
            {
                //bout.write(line+"\n");  // 끝에 줄바꿈 문자를 추가
                pout.println("" + i + " " + line);     // 자동으로 끝에 줄바꿈 문자를 추가한다.
                System.out.println("" + i + " " + line);               
            }
        }
       
        br.close();
        bout.close();
        in.close();
        out.close();
        System.out.println(len + " bytes are copied...Successfully!");
    }
}




/******************************************************************************
*   파일      : InputStreamReaderTest.java
*   용도      : InputStreamReaderTest
*   작성자   : 성홍제
*   작성일   : 2006. 08. 03
*   Version : 1.0
******************************************************************************/

import java.io.*;
import java.util.*;

public class InputStreamReaderTest
{
    public static void main(String[] args) throws java.io.IOException
    {
        String s, str;
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
        Vector v = new Vector();
       
        PrintWriter pout = new PrintWriter(new FileWriter("d:\\test2.txt"));
   
        System.out.println("내용을 입력해~" );
       
        while((s = br.readLine()) != null)
        {
            if( s.equals("stop"))
            {
                break;
            }
           
            System.out.println("Read : "  + s);
            //pout.println("Read : "+s);
            v.add(s);
        }
       
        System.out.print("저장할래?(Y or N) >> ");
        s = br.readLine();
        System.out.println();
       
        if(s.equals("Y") || s.equals("y"))
        {
            for(int i = 0; i < v.size(); i++)
            {
                str = (String)v.get(i);
                pout.println(str);
            }
           
            System.out.println("저장했으~ d:\\test2.txt에" );
        }
       
        pout.close();
        br.close();
    }
}




/*******************************************************************************************
*   파일      : ChattFrame.java
*   용도      : 채팅 창 예제
*   작성자   : 성홍제
*   작성일   : 2006. 08. 03
*   Version : 1.0
*******************************************************************************************/

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;

public class ChatSave extends Frame implements ActionListener
{
    // Fields  
    private TextArea    ta = new TextArea();
    private TextField   tf = new TextField();
    private Button      submit = new Button("전송");
    private Vector v = new Vector();
    private ChatSave cs = null;
    private String fileName = "d:\\Test3.txt";

    // Constructor
    public ChatSave(String title)
    {
        super(title);
        cs = this;
        this.init();
       
        this.setSize(640, 480);
        this.setResizable(false);   // 리사이즈 막기
        //this.pack();

        // 화면 중앙에 위치 시키기
        Toolkit tk = Toolkit.getDefaultToolkit();
        Dimension di = tk.getScreenSize();
        Dimension di1 = this.getSize();
        this.setLocation((int)(di.getWidth() / 2 - di1.getWidth() / 2), (int)(di.getHeight() / 2 - di1.getHeight() / 2));

        this.setVisible(true);

        // Events
        this.addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
                // 다이얼로그
                new DialogTest(cs, "저장할래?", true);
                System.exit(0);
            }
        });
       
        tf.addActionListener(this);
        submit.addActionListener(this);

        // Focus
        tf.requestFocus();
    }

    // Methods
    /*************************************************
    * Purpose      : 초기화
    * Return           : void
    * Parameter    : none
    *************************************************/
    private void init()
    {
        this.setLayout(new BorderLayout());

        // South
        Panel p = new Panel(new BorderLayout());
        p.add("Center", tf);
        p.add("East", submit);

        ta.setEditable(false);

        this.add("Center", ta);
        this.add("South", p);  
    }

    public void actionPerformed(ActionEvent ae)
    {
        Object obj = ae.getSource();
       
        if(obj == tf || obj == submit)
        {
            //String str = tf.getText() + "\n\r";
            String str = tf.getText();
            tf.setText("");
           
            // 벡터에 저장
            v.add(str);
   
            ta.append(str + "\n\r");
           
            tf.requestFocus();
        }       
    }
   
    /*************************************************
     * Purpose      : 대화 내용을 저장한다
     * Return        : void
     * Parameter   : none
     *************************************************/
    public void saveFile()
    {
        try
        {
            PrintWriter pout = new PrintWriter(new FileWriter(fileName));
       
            String str;
           
            for(int i = 0; i < v.size(); i++)
            {
                str = (String)v.get(i);
                pout.println(str);
            }
           
            System.out.println("저장했으~ " + fileName +"에" );
           
            pout.close();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    // Main
    public static void main( String[] args )
    {
        ChatSave cf = new ChatSave( "채팅창" );
   
    }// public static void main( String[] args )
}// public class ChattFrame extends Frame

class DialogTest extends Dialog implements ActionListener
{
    // Fields
    Frame       parent;
    Dialog      d;
    Button  btYes = new Button("YES");
    Button  btNo = new Button("NO");
    Label       lb = new Label("저장할래?");

    // Constructor
    public DialogTest(Frame parent, String title, boolean modal)
    {
        super(parent, title, modal);
        this.parent = parent;
        d = this;

        init();
        start();

        this.pack();
        this.setLocation(300, 200);

        this.setVisible(true);
    }

    // Methods
    private void init()
    {
        this.add("North", lb);      

        Panel p = new Panel(new FlowLayout());
        p.add(btYes);
        p.add(btNo);

        this.add("Center", p);
    }

    private void start()
    {
        this.addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent we)
            {
                //System.out.println(we);
                d.dispose();
            }
        });
       
        btYes.addActionListener(this);
        btNo.addActionListener(this);
    }

    public void actionPerformed(ActionEvent ae)
    {
        //this.dispose();
       
        Object obj = ae.getSource();
       
        if(obj == btYes)
        {
            ChatSave cs = (ChatSave)this.parent;
            cs.saveFile();
            d.dispose();
        }
        else if(obj == btNo)
        {
            d.dispose();
        }
    }

    // Main

}// public class DialogTest extends Dialog

'프로그래밍 > Java' 카테고리의 다른 글

02 2일째....  (0) 2007.11.27
01 Network 첫시간...  (0) 2007.11.27
04 ObjectOutputStream / ObjectInputStream 클래스  (0) 2007.11.27
05 3일째...  (0) 2007.11.27
04 입출력  (0) 2007.11.27