Io操作一
在e盘src目录下新建from.txt和to.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.java和Carpenter.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();
}
}
这样执行结果如下所示: