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("內部匿名類");

}

}

}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章