Java IO操作

Java当中的i/o

大文件的读写方法/字节流:

//第一步骤:导入类

import java.io.*;

class TestI{

public static void main (String args[]){

//声明输入流的引用

FileInputStream fis=null;

//声明输出流的引用

FileOutputStream fos=null;

try{

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

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

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

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

//生成一个字节数组

byte [] buffer=new byte[1024];

//对于大文件需要使用循环,一次一次的读取

while(true){

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

if (temp==-1){

break;

}

fos.write(buffer,0,temp);

}

//调用输入流的read方法,读取数据,存放在buffer

System.out.println(temp);

fos.write(buffer,0,temp);

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

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

}

//生成一String对象

//String s=new String(buffer);

//调用String对象的trim方法,将会去除掉这个字符串的首尾空格和空字符

//s=s.trim();

//System.out.println(s);

}

catch(Exception e){

System.out.println(e);

}

finally{

try{

fis.close();

fis.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:/workspace/java4android/from.txt");

fw=new FileWriter("e:/workspace/java4android/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);

}

}

}

}

IO节点流与处理流:

处理流是在节点流的基础上再处理,节点流也是字符流

import java.io.*;

class TestI{

public static void main(String args[]){

//生成一个fileReader对象的引用

FileReader fileReader=null;

//生成一个BufferReader的引用

BufferedReader bufferedReader=null;

try{

//生成fileReader对象

fileReader=new FileReader("e:/workspace/java4android/from.txt");

//生成bufferedReader对象,将fileReader对象传入

bufferedReader=new BufferedReader(fileReader);

String line=null;

while(true){

//调用readline()方法

line=bufferedReader.readLine();

if(line==null){

break;

}

System.out.println(line);

}

}

catch(Exception e){

System.out.println(e);

}

finally{

try{

fileReader.close();

bufferedReader.close();

}

catch(Exception e){

System.out.println(e);

}

}

}

}

装饰者模式:

装饰者是在被装饰者的基础上添加新的功能。

//定义一个接口

interface Worker{

public void doSomeWork();

}

//Awoker实现接口

class Aworker implements Worker{

//worker类型的成员变量

private Worker worker;

//构造方法,传入一个worker类型的变量

public Aworker(Worker worker){

this.worker=worker;

}

public void doSomeWork(){

System.out.println("hello");

worker.doSomeWork();

}

}

class Plumber implements Worker{

public void doSomeWork(){

System.out.println("modify water pull");

}

}

class Carpenter implements Worker{

public void doSomeWork(){

System.out.println("modify door");

}

}

class Test5{

public static void main(String args[]){

//生成plumber对象

Plumber plumber=new Plumber();

//生成aWorker plumber对象传入,因为plumberworker的子类,这里向上转型后即为worker类型,直接传入

Aworker aWorker=new Aworker(plumber);

//调用aWorker.doSomeWork()方法

aWorker.doSomeWork();

Carpenter carpenter=new Carpenter();

Aworker aWorker2=new Aworker(carpenter);

aWorker2.doSomeWork();

}

}

内部类与匿名内部类

内部类可以随意的使用外部类定义的成员变量与成员函数

class A{

int i;

class B{

int j;

int funB(){

int result=i+j;

return result;

}

}

}

class Test{

public static void main(String args[]){

A a=new A();

A.B b=a.new B();

a.i=3;

b.j=0;

int result=b.funB();

System.out.println(result);

}

}

匿名内部类:

interface C{

public void doSome();

}

class D{

public void fun(C c){

System.out.println("D fun");

c.doSome();

}

}

class Testc{

public static void main(String args[]){

//CIm cim=new CIm();

//C c=cim;

D d=new D();

d.fun(new C(){

public void doSome(){

System.out.println("内部匿名类");

}

}

}

}

 

你可能感兴趣的:(java,I/O操作)