FileReader, FileWriter

import java.io.*;
//1. 도스콘솔로 읽을 파일명을 입력받고,  이때 InputStreamReader를 이용해보자
//2. 도스콘솔로 카피할 파일명(목적파일)을 입력받아 1번파일을 2번 목적파일에 카피해 보자
//  FileReader와 FileWriter를 사용
//3. 카피가 완료되면..."복사가 완료 됐습니다."를 출력

class FileReaderAndWriter 
{
	public static void main(String[] args)
		throws IOException
	{
		System.out.println("읽을 파일명을 입력하세요=>");
		//입력(키보드입력)받기...
		InputStreamReader ir
			=new InputStreamReader(System.in);
		char ch[]=new char[50];//파일이름을 담을 배열
		String sourceFile="";
		int readCount=ir.read(ch,0, ch.length);
		sourceFile=new String(ch,0,readCount-2);
									//readCount에서 엔터값 빼기(\r\n)
		System.out.println("**"+sourceFile+"을 읽겠습니다.****");

		System.out.println("목적 파일명을 입력하세요=>");
		readCount=ir.read(ch,0,ch.length);
		String targetFile=new String(ch,0, readCount-2);
		System.out.println(targetFile+"로 복사합니다.");

		FileReader fr=new FileReader(sourceFile);
		FileWriter fw=new FileWriter(targetFile);
		int data=0;
		while((data=fr.read())!=-1){
			fw.write(data);//파일에 출력
			fw.flush();
			System.out.print((char)data);//도스콘솔에 출력
		}//while----
		System.out.println("복사 완료!..."+targetFile+"을 열어봐요");
		ir.close();
		fr.close();
		fw.close();
	}//main()---------
}

'Java > I_O' 카테고리의 다른 글

스트림 분류  (0) 2011.12.11
Buffered Reader Writer  (0) 2011.12.11
FileReader 클래스  (0) 2011.12.10
File class(dir 출력)  (0) 2011.12.10
File class  (0) 2011.12.10

FileReader 클래스

import java.io.*;
class  FileReaderTest
{
	public static void main(String[] args) throws IOException
	{
		//파일(텍스트기반파일)과 노드 연결-2byte기반 스트림
		File file=new File(args[0]);
		//명령줄 인수로 파일명을 받아들인뒤 File객체로 생성
		FileReader fr=new FileReader(file);
		//파일과 스트림의 노드 연결
		//도스콘솔에 출력
		//System.out을 사용하면 1바이트기반 2바이트 단위로 출력해 주는 
		//브릿지스트림으로 출력해 보자
		OutputStreamWriter osw = new OutputStreamWriter(System.out);
		//1바이트롤 출력하는 데이터를 2바이트로 만들어서 Writer객체에 전달하는 기능을 하므로
		//일종의 브릿지(다리) 역할을 하는 스트림이디.

		int data=0;
		char[] buffer=new char[100];
		//배열에 담아서 읽는다
		while((data=fr.read(buffer, 0, buffer.length)) != -1)  {
			//System.out.write(data); 1byte기반으로 한글은 깨짐
			//System.out.flush();
			osw.write(buffer, 0, data);
			osw.flush();
		}//while------------
		//자원반납-스트림 닫기
		fr.close();
		System.out.close();
	}//mail()--------------
}////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////    FileWriter      ////////////////////////////////////////////////////////////
import java.io.*;
class  FileWriterTest
{
	public static void main(String[] args) throws IOException
	{
		String str="result.txt";
		File file=new File(str);
		//스트림 연결
		FileWriter fw=new FileWriter(file);
		for (int i=1;i<=10 ;i++ )
		{
			fw.write("줄번호:"+i+"\n");
			fw.flush();
		}//for-------
		fw.close();
	}//main()-----------
}

'Java > I_O' 카테고리의 다른 글

Buffered Reader Writer  (0) 2011.12.11
FileReader, FileWriter  (0) 2011.12.10
File class(dir 출력)  (0) 2011.12.10
File class  (0) 2011.12.10
DataInputStream, DataOutputStream  (0) 2011.12.10

File class(dir 출력)

import java.io.*;
import static java.lang.System.out;
class  DirList
{
	public static void main(String[] args) 
	{
		//c:\디렉토리 아래 있는 파일 또는 디렉토리 목록을
		//얻어 도스 콘솔에 출력하세요...File클래스의
		//String[] list(), File[] listFiles() 메소드를 이용.
		String dirName=args[0];
		File dir=new File(dirName);
		String files[]=dir.list();
		//해당 디렉토리 파일(디렉토리) 목록들을 
		//배열에 담아서 돌려준다.
		
		for(String fn: files)//확장for문
			out.println(fn);

		for (int i=0;i

'Java > I_O' 카테고리의 다른 글

FileReader, FileWriter  (0) 2011.12.10
FileReader 클래스  (0) 2011.12.10
File class  (0) 2011.12.10
DataInputStream, DataOutputStream  (0) 2011.12.10
File Input/Output Stream  (0) 2011.12.09

File class

import java.io.*;
import static java.lang.System.out;
class  FileTest
{
	public static void main(String[] args) 
	{
		String filename=args[0];
		File file=new File(filename);
		out.println("파일명: "+file.getName());
		out.println("파일 상대경로: "+file.getPath());
		out.println("파일 절대경로: "+file.getAbsolutePath());
		out.println("파일 크기 : "+file.length()+" 바이트");
		File file2=new File("sample", "test.txt");
		File file3=new File("sample"+File.separator
								+"test2.txt");

		out.println("파일의 상위 부모 경로: "
						+file2.getParent());
		//boolean형태 정보를 제공하는 메소드
		out.println("파일 존재 여부:  "+file2.exists());
		out.println(file3.exists()? "존재함" : "존재하지 않음");
		out.println("file이 파일인지 여부: "+file.isFile());
		out.println(file.isDirectory()? "디렉토리임": "디렉토리아님");
		out.println(file.canWrite()? "쓰기 가능": "쓰기 불가");
		out.println(file.canRead()? "읽기 가능":"읽기 불가");

		File file4=new File("peace");
		file4.mkdir();//디렉토리 생성
		File file5=new File("hope","test");
		file5.mkdirs();

		boolean r=file4.renameTo(new File("love"));
					//이름을 변경
		out.println(r);
		boolean r2=file5.delete();
		out.println("file5삭제: "+r2);
	}
}//////////////////////////////////////////////////////////////////////////////////////////////////////////


'Java > I_O' 카테고리의 다른 글

FileReader 클래스  (0) 2011.12.10
File class(dir 출력)  (0) 2011.12.10
DataInputStream, DataOutputStream  (0) 2011.12.10
File Input/Output Stream  (0) 2011.12.09
File Input Stream  (0) 2011.12.09

DataInputStream, DataOutputStream

import java.io.*;
class DataInOutStream 
{
	public static void main(String[] args) throws Exception
	{
		String sourcefile="test.txt";
		String targetfile="test.txt";

		//DataOutputStream : 필터스트림
		// 자바의 다양한 자료형(Data Type)들은 바이트 단위로 분해하여 쓰기 작업을 한다.
		// DataInputStream과 짝을 이뤄 사용한다.
		//1. 파일 sourcefile과 노드 연결 스트림 생성
		FileOutputStream fos = new FileOutputStream(targetfile);
		// test.txt에 쓰기
		//2.필터링: DataOutputStream과 연결
		DataOutputStream dos = new DataOutputStream(fos);
		//3.자바의 다양한 자료형의 데이터를 써보자.
		byte b=2;
		byte [] arr={65,66,67};
		boolean bool=true;
		char ch ='가';
		String str="홍길동";//9바이트+2바이트
		dos.write(b);
		dos.write(arr,0,arr.length);
		dos.writeBoolean(bool);
		dos.writeChar(ch);
		dos.writeUTF(str);
		//유니코드의 utf-8형식으로 문자열을 출력하는 메소드
		//utf형식은 각 문자의 표현을 위해 한바이트 사용하는지,
		//두바이트 또는 세바이트 차지하는지 알아내어 
		// ACII문자는 1바이트로, 그리스어, 히브리어, 아랍어 등의 
		// 문자는 2바이트로, 그외의 문자는 3바이트로 표현된다.
		System.out.println("총:" +dos.size()+"바이트 썼음");
		dos.flush();
		dos.close();

		DataInputStream dis = new DataInputStream(new FileInputStream(sourcefile));
		//test.txt 읽기
		System.out.println("읽어 올 수 있는 바이트 수:"+dis.available());
		byte b2 = dis.readByte();
		System.out.println(b2);
		int n = dis.read(arr,0,arr.length);
		//n: 바이트수
		for (byte bt: arr)
			System.out.println((char)bt);
		boolean res=dis.readBoolean();
		System.out.println(res);

		char ch2=dis.readChar();
		System.out.println(ch2);
		String str2=dis.readUTF();
		System.out.println(str2);
		dis.close();
	}
}


'Java > I_O' 카테고리의 다른 글

File class(dir 출력)  (0) 2011.12.10
File class  (0) 2011.12.10
File Input/Output Stream  (0) 2011.12.09
File Input Stream  (0) 2011.12.09
InputStream과 OutputStream  (0) 2011.11.30

File Input/Output Stream

import java.io.*;
// BufferedInputStream 사용 필터링을 수행하는 스트림,
//바이트 단위로 들어오는 데이터를 버퍼에 차곡차곡 모아서 읽어 들인다
//데이터는 버퍼에 누적되고 버퍼가 가득차면 한꺼번에 읽어 들인다. 기본 버퍼크기:512byte

class BIStream1 
{
	public static void main(String[] args) throws Exception
	{
		//데이터 소스 : 키보드
		//노드스트림 : System.in
		//필터스트림 : BufferedInputStream
		InputStream is = System.in;
		BufferedInputStream bis = new BufferedInputStream(is);
		//필터링-노드스트림과 필터 스트림을 연결

		PrintStream ps = System.out;
		BufferedOutputStream bos = new BufferedOutputStream(ps);
		int r=0;
		byte ba[] = new byte[100];
		while((r=bis.read(ba)) != -1) {
			bos.write(ba);
			bos.flush();
	}//while---------------------
	bis.close(); bos.close();
	is.close(); ps.close();

	}//main()-----------
}///////////////////////////////////////////////////////////////////////////
import java.io.*;

class BIStream2 
{
	public static void main(String[] args) throws Exception
	{
		//데이터 소스 : 파일(BIStream1.java)
		//데이터 목적지 : 콘솔, 파일[Result.txt]로 출력
		//BufferedInputStream과 BufferedOutputStream으로 필터링을 이용해서 구현
		FileInputStream fis = new FileInputStream("BIStream1.java");
		BufferedInputStream bis = new BufferedInputStream(fis);
		//필터링-노드스트림과 필터 스트림을 연결

		BufferedOutputStream bos = new BufferedOutputStream(System.out);
		BufferedOutputStream bos2 = new BufferedOutputStream(
										new FileOutputStream("Result.txt"));
		int r=0;
		while((r=bis.read()) != -1) {
			bos.write(r); //콘솔에 쓰고
            bos2.write(r); //파일에 쓰고
			bos.flush();
			bos2.flush();
	}//while---------------------
	bis.close(); bos.close(); bos2.close();
	fis.close(); System.out.close();

	}//main()-----------
}/////////////////////////////////////////////////////////////////////////////////////

'Java > I_O' 카테고리의 다른 글

File class(dir 출력)  (0) 2011.12.10
File class  (0) 2011.12.10
DataInputStream, DataOutputStream  (0) 2011.12.10
File Input Stream  (0) 2011.12.09
InputStream과 OutputStream  (0) 2011.11.30

File Input Stream

import java.io.*;
import static java.lang.System.*;

class FileInStream1
{
	public static void main(String[] args) throws IOException
	{
		//읽을 파일명을 명령줄 인수로 받자.
		String filename=args[0];
		FileInputStream fis = new FileInputStream(filename);
		//노드연결
		int r=0, count=0, total=0;
		byte ba[] = new byte[1024];

		while ((r=fis.read(ba))  != -1)  {
			//System.out.print(r);
			System.out.write(ba, 0, r);
			System.out.flush();
			//System.out.println("r: "+r);
			total += r;
		}//while------------
		out.println("-----------------------------------");
		out.println("총  " +total+"바이트");
		out.println("-----------------------------------");
		fis.close();
		System.out.close();
	}
}///////////////////////////////////////////////////////////////////////////////////////////////////////
import java.io.*;
import static java.lang.System.*;
// 키보드로 입력한 내용을 파일(result.txt)에 저장
//데이터 소스: 키보드(System.in),,,,데이터 목적지: 파일(FileOutputStream)
class FileOutStream
{
	public static void main(String[] args) throws IOException
	{
		out.println("입력하세요 ==>[이 내용은 result.txt파일에 저장됩니다..]");
		FileOutputStream fos = new FileOutputStream("result.txt", true);
		//true를 주면 append기능이 됨 , 기존 파일 내용에 덧붙이기
		int r=0;
		while((r=System.in.read()) != -1) {
			fos.write(r);
			//fos.flush();
		}//while------------------
		fos.close();
		System.in.close();
	}//main----------
}/////////////////////////////////////////////////////


'Java > I_O' 카테고리의 다른 글

File class(dir 출력)  (0) 2011.12.10
File class  (0) 2011.12.10
DataInputStream, DataOutputStream  (0) 2011.12.10
File Input/Output Stream  (0) 2011.12.09
InputStream과 OutputStream  (0) 2011.11.30

JTree

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import java.util.*;

public class  JTreeDemo extends JFrame
{
	Object [] root={"프로그램","Database","System"};
	JTree tree; //View

	public JTreeDemo(){
		super(":: JTreeDemoDemo ::");
		Container cp=getContentPane();
		

		Vector node1=new Vector(){
			public String toString() {
				return "JavaPro84";
			}
		};
		Vector node2=new Vector(){
			public String toString(){
				return "Language";
			}
		};
		Vector node3=new Vector(){
			public String toString() {
				return "DB";
			}
		};

		node1.add(node2);
		node1.add(node3);

		node2.add("JAVA");
		node2.add("JSP");
		node2.add("EJB");

		node3.add("Oracle");
		node3.add("MS-SQL");
		node3.add("mySql");

		root[0]=node1;
		cp.add(new JScrollPane(tree=new JTree(root)));
		tree.setRootVisible(true);//루트 설정



		addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}//생성자-------
	public static void main(String[] args) 
	{
		JTreeDemo d=new JTreeDemo();
		d.setSize(500,500);
		d.setVisible(true);
	}
}


'Java > Awt_Swing' 카테고리의 다른 글

RootPane  (0) 2011.12.06
GlassPane  (0) 2011.12.06
Swing JInternal Frame  (0) 2011.12.06
Swing JTable  (0) 2011.12.06
SWING JProgressBar, JSlider  (0) 2011.12.05

RootPane


'Java > Awt_Swing' 카테고리의 다른 글

JTree  (0) 2011.12.06
GlassPane  (0) 2011.12.06
Swing JInternal Frame  (0) 2011.12.06
Swing JTable  (0) 2011.12.06
SWING JProgressBar, JSlider  (0) 2011.12.05

GlassPane

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class  GlassPaneDemo extends JFrame
{
	public GlassPaneDemo(){
		super(":: GlassPaneDemo ::");
		//ContentPane에 JTextArea부착
		Container cp=getContentPane();
		cp.add(new JScrollPane(new JTextArea()));
		
		//GlassPane을 얻어오자
		JComponent gp=(JComponent)getGlassPane();
		gp.setLayout(null);
		JPanel p1=new JPanel(new GridLayout(0,1,5,5));
		gp.add(p1);
		p1.setBounds(200,10,80,100);
		JButton btNew=new JButton("NEW");
		btNew.setBackground(Color.blue);
		btNew.setForeground(Color.white);
		p1.add(btNew);

		JButton btCopy=new JButton("COPY");
		btCopy.setBackground(Color.red);
		btCopy.setForeground(Color.white);
		p1.add(btCopy);

		JButton btPaste=new JButton("PASTE");
		btPaste.setBackground(Color.yellow);
		btPaste.setForeground(Color.gray);
		p1.add(btPaste);

		gp.setVisible(true); //GlassPane도 setVisible(true)줘야 나온다
		p1.setOpaque(false); //투명하게...
		btPaste.setOpaque(false);




		addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}//생성자-------
	public static void main(String[] args) 
	{
		GlassPaneDemo d=new GlassPaneDemo();
		d.setSize(500,500);
		d.setVisible(true);
	}
}


'Java > Awt_Swing' 카테고리의 다른 글

JTree  (0) 2011.12.06
RootPane  (0) 2011.12.06
Swing JInternal Frame  (0) 2011.12.06
Swing JTable  (0) 2011.12.06
SWING JProgressBar, JSlider  (0) 2011.12.05
◀ PREV 123456 NEXT ▶