자바 의 장식 자 모드,LineNumberReader,인쇄 흐름,병합 흐름

장식 자 모드
사상:기 존의 기능 을 향상 시킨다.
장식 자 단계:
1.피 장식 자 를 클래스 의 구성원 변수 로 간주한다
2.구조 방법 에서 구성원 변 수 를 할당 합 니 다.
(값 을 부여 하면 장식 자 라 는 대상 을 얻 을 수 있다)이 대상 이 있 으 면 이 대상 을 호출 할 수 있 는 방법
3.방법 업그레이드
//       
interface study{
	//    
	public abstract void studyCode();
}
class Student implements study{

	@Override
	public void studyCode() {
		System.out.println("  c");
		System.out.println("  c++");
		System.out.println("  c#");
		
	}
	
}
//    
class LOStudent implements study{
	//         
	private Student student;
//    
	public LOStudent() {
		super();
		// TODO Auto-generated constructor stub
	}

	public LOStudent(Student student) {
		super();
		this.student = student;
	}
	//      
//	public void loCode() {
//		
//	}

	@Override
	public void studyCode() {
		//          
		student.studyCode();
		//  
		System.out.println("   java");
		System.out.println("   h5");
		
	}
}

2.LineNumberReader
File file =new File("/Users/lanou/Desktop/aa/ll.txt");
	FileReader fr=new FileReader(file);
	LineNumberReader inr=new LineNumberReader(fr);
	//    
	inr.setLineNumber(100);
	//   
	String string="";
	while ((string=inr.readLine())!=null) {
		//       
		System.out.println(inr.getLineNumber()+":"+string);
	}
	inr.close();

아 날로 그 라인 NumberReader 클래스
장식 자 모드 활용  줄 번호 설정 가 져 오기
class MyLineNumberReader{
	//      (      )
	//                  
	private Reader reader;
	private int num;
	//    

	public MyLineNumberReader() {
		super();
		// TODO Auto-generated constructor stub
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public MyLineNumberReader(Reader reader) {
		super();
		this.reader = reader;
	}
	//     (            )
	//      read()        
	//readline              
	//      null
	
	public String  myReadLLine() throws IOException {
		//  ++
		num++;
		//         ,       
		//     
		StringBuilder sb=new StringBuilder();
		//    
		int len=0;
		while ((len=reader.read())!=-1) {
			if (len!='
') { // sb.append((char)len); }else { // return sb.toString(); } } // if (sb.length()==0) { return null; } // return sb.toString(); } // public void myClose() throws IOException { reader.close(); }

3.인쇄 흐름(io 이상 을 영원히 던 지지 않 습 니 다)
출력 목적 조작(파일 콘 솔 인쇄)
 PrintStream(바이트 흐름) 
 구조 방법:파일 바이트 출력 흐름 경로
 PrintWriter(문자 흐름)
 구조 방법:파일 바이트 출력 흐름 경로 문자 출력 흐름
 핵심 기능:목적 단 에 그대로 출력
 system.in 은 bufferedinputstream 대상 입 니 다.
 sysout.out 은 printstream 대상(인쇄 흐름)
	File file =new File("/Users/lanou/Desktop/aa/ll.txt");
		FileOutputStream fos=new FileOutputStream(file);
		PrintStream ps=new PrintStream(fos);
		ps.println("hahah");
		ps.println(100);
		ps.print(true);
		//  
		ps.close();
	File file =new File("/Users/lanou/Desktop/aa/ll.txt");
		FileWriter fw=new FileWriter(file);
		//                
		PrintWriter pw=new PrintWriter(fw,true);
		pw.println("dahaiba");
		pw.println(true);
		//      
		pw.close();

합병 류
//             
		File file1=new File("/Users/lanou/Desktop/aa/1.txt");
		File file2=new File("/Users/lanou/Desktop/aa/2.txt");
		File file3=new File("/Users/lanou/Desktop/aa/3.txt");
		//    
		Vectorvector=new Vector<>();
		//            
		vector.add(new FileInputStream(file1));
		vector.add(new FileInputStream(file2));
		vector.add(new FileInputStream(file3));
		//     
		Enumeration elements = vector.elements();
		//     
		SequenceInputStream sis=new SequenceInputStream(elements);
		//       
		FileOutputStream fos=new FileOutputStream("/Users/lanou/Desktop/aa/4.txt");
		
		OutputStreamWriter osw=new OutputStreamWriter(fos);
		BufferedWriter bw=new BufferedWriter(osw);
		//  
		int len=0;
		while ((len=sis.read())!=-1) {
			bw.write(len);
			bw.newLine();
			bw.flush();
		}
		sis.close();
		fos.close();
	Vectorvector=new Vector<>();
		for (int i = 1; i < 12; i++) {
			File file =new File("/Users/lanou/Desktop/ss/kaoshi/"+i+".suipian");
			FileInputStream fis=new FileInputStream(file);
			vector.add(fis);
		}
		Enumeration elements = vector.elements();
		FileOutputStream fos=new FileOutputStream("/Users/lanou/Desktop/ss/kaoshi/ks.txt");
		SequenceInputStream sis=new SequenceInputStream(elements);
		int len=0;
		byte[]b=new byte[100];
		while ((len=sis.read(b))!=-1) {
			fos.write(b,0,len);
		}
		
		fos.close();
		sis.close();

좋은 웹페이지 즐겨찾기