java第七天--IO;装饰者模式

Io操作一

esrc目录下新建from.txtto.txt文件,并在前者中写下几个字符。

 

//第一步骤:导入类;

import java.io.*;

class Test{

public static void main(String args[]){

//声明输入流引用

FileInputStream fis = null;

//声明输出流引用

FileOutputStream fos = null;

try{

//生成代表输入流的对象

fis = new FileInputStream("e:/src/from.txt");

//生成代表输出流的对象

fos = new FileOutputStream("e:/src/to.txt");

//生成一个字节数组

byte [] buffer = new byte[100];

//调用输入流对象的read方法,读取数据

int temp = fis.read(buffer,0,buffer.length);

fos.write(buffer,0,temp);

//String s = new String(buffer);

//trim()方法将去掉一个字符串的首尾空格和空字符

//System.out.println(s.trim());

/*for(int i = 0;i < buffer.length;i++){

System.out.println(buffer[i]);

}*/

}

catch(Exception e){

System.out.println(e);

}

}

}

 

 

Io操作二:

大文件的读写方法:

//第一步骤:导入类;

import java.io.*;

class Test{

public static void main(String args[]){

//声明输入流引用

FileInputStream fis = null;

//声明输出流引用

FileOutputStream fos = null;

try{

//生成代表输入流的对象

fis = new FileInputStream("e:/src/from.txt");

//生成代表输出流的对象

fos = new FileOutputStream("e:/src/to.txt");

//生成一个字节数组

byte [] buffer = new byte[1024];

//调用输入流对象的read方法,读取数据

while(true){

int temp = fis.read(buffer,0,buffer.length);

if(temp == -1){

break;

}

fos.write(buffer,0,temp);

}

//String s = new String(buffer);

//trim()方法将去掉一个字符串的首尾空格和空字符

//System.out.println(s.trim());

/*for(int i = 0;i < buffer.length;i++){

System.out.println(buffer[i]);

}*/

}

catch(Exception e){

System.out.println(e);

}

finally{

try{

fis.close();

fos.close();

}

catch(Exception e){

System.out.println(e);

}

}

}

}

 

 

 

 

 

字符流:

//字符流:读写文件时,以字符为基础;

//字符输入流:Reader <-- FileReader   

// int read(char []c,int off,int len)

//字符输出流:Writer <-- FileWriter

//void write(char []c,int off,int len)

//第一步骤:导入类;

import java.io.*;

public class TestChar{

public static void main(String args[]){

FileReader fr = null;

FileWriter fw = null;

try{

fr = new FileReader("e:/src/from.txt");

fw = new FileWriter("e:/src/to.txt");

char []buffer = new char[100];

int temp = fr.read(buffer,0,buffer.length);

fw.write(buffer,0,temp);

}

catch(Exception e){

System.out.println(e);

}

finally{

try{

fr.close();

fw.close();

}

catch(Exception e){

System.out.println(e);

}

}

}

}

 

 

 

 

 

 

 

 

 

 

处理流:

BufferedReader

 

 

生成BufferedReader对象的方法

 

BufferedReader in = new BufferedReader(new FileReader(“foo.in”));




装饰者模式举例:

我们需要两种工人,水管工和木匠,而这又分为A公司的水管工和木匠以及B公司的水管工和木匠,为了使程序简单,我们使用装饰者模式。

首先我们定义一个接口Worker.java

interface Worker{

public void doSomeWork();

}

 

在定义两个类Plumber.javaCarpenter.java来实现这个接口:

class Plumber implements Worker{

public void doSomeWork(){

System.out.println("修水管");

}

}

 

 

class Carpenter implements Worker{

public void doSomeWork(){

System.out.println("修门窗 ");

}

}

 

再定义一个类AWorker.java

class AWorker implements Worker{

private Worker worker;

public AWorker( Worker worker){

this.worker = worker;

}

public void doSomeWork(){

System.out.println("Hello");

worker.doSomeWork();

}

}

 

我们再定义主函数

class Test01{

public static void main(String args[]){

//生成一个A公司水管工对象

Plumber plumber = new Plumber();

AWorker aWorker = new AWorker(plumber);

aWorker.doSomeWork();

}

}

 

这样执行结果如下所示:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值