分享
 
 
 

初级 Java I/O 综述(三)

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

抽象类Reader和Writer定义了实用的方法,其中最主要的是read()和

write()。这两个方法在Reader和Writer中声明为抽象方法,由子流类overwrite实现。

下面还是简单介绍一下字符流中,继承Reader和Wirter的主要子流类。

字符流类

功能简单介绍

Reader

抽象类,描述字符流的输入

Writer

抽象类,描述字符流的输入

StingReader

从字符串读取的输入流

StringWriter

写入字符串的输出流

FileReader

从文件读入的输入流

FileWriter

写入文件的输出流

PrintWriter

包含最常见的Print()和Println()的输出流

PushbackReader

返回一个字符到输入流,主要用于编译器的实现

PipedReader

输出管道

PipedWriter

输入管道

CharArrayReader

从字符数组读取的输入流

CharArrayWriter

写入字符数组的输出流

BufferReader

缓冲输入流

BufferWriter

缓冲输出流

FilterReader

实现了InputStream Interface

FilterWriter

实现了OutputStream Interface

InputStreamReader

将字节转换为字符的输入流

OutputStreamWriter

将字节转换为字符的输出流

对比两个表,你是否有什么发现?~~

^_^,是不是很多的类名和作用都差不多,没错!这些方法的不同之处仅仅在于一个是针对字节的,一个是针对字符的。

简单了解了流的概念和两种流的各种子类。下面我们通过一些简单的程序来实现上面的东西,毕竟例子才是组好理解的东西。

1:读取控制台的输入。。。。。。

具体的语句如下:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

下面将这条语句分块解释一下:

System.in――》读取控制台的数据,他读取的是字节流。

InputStreamReader――》它的作用是将字节流转换为字符流。它的构造函数为:

InputStreamReader(InputStream inputStream)

BufferedReader――》将输入流缓冲处理,可以提高处理效率。

上面的语句也可以写成下面的形式更容易理解。。

InputStreamReader ins = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(ins);

2:控制台输出。。。。。。。。。。。。。

控制台输出可以使用print()和println(),这个方法很容易使用。其他可以使用

write()方法来实现输出。它的构造函数为:

void write(int byteval)

下面是一个例子程序:

class writeExample

{

public static void main(String args[])

{

int n;

a = ‘a’;

System.out.write(a);

System.out.write(‘\n’);

}

}

3:读取字符。。。。。。。。。。。。。。。。。。

使用前面的BufferedReader定义的一个方法read()来读入的返回值为int,所以为了返回一个char,要进行转换。Read()的构造函数:

int read() throws IOException

具体程序如下:

import java.io.*;

class readExample

{

public static void main(String args[]) throws IOException

{

char a;

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.println(“Enter q to quit.”);

a= (char) br.read(); //从输入流中读出存入(char) a中

If(a != ‘q’)

System.out.println(a);

}

}

4:读取字符串。。。。。。。。。。。。。。。。。。。。。

使用函数:readLine() 它的常用形式为:

String readLine() throws IOException

import java.io.*

class readLineException

{

public static void main(String args[]) throws IOException

{

String str;

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.println(“Enter a string line, q to quit.”);

Str = b.readLine();

If(str != q)

System.out.println(str);

}

}

5:关于文件的读写。。。。。。。。。。。。。。。。。。。。。。。。。。

Java提供了对文件的读写,但是有一点要注意的是:所有的文件都是面向字节的。但是Java允许我们在基于字符的对象来包装面向字节的文件。

两个对文件的操作的流类是:FileInputStream和FileOutputStream。这两个类的构造函数为:

FileInputStream(String filename)throws FileNotFoundExcepiont

FileOutPutStream(String filename)throws FileNotFoundException

此两个类定义了几个使用的函数:

在对文件操作完之后,要使用close()方法关闭文件。

void close() throws IOException

用于读取一个文件,要使用read()读出的是字节流,如果读到文件的末尾

read()会返回 -1 。

int read() throws IOException

用于写入一个文件,使用write()来将字节流写入要求的文件中,此方法将参数写入到要求的文件中,但是要注意只有低8个字节才能写入文件。下面是一个例子程序:

import java.io.*;

class copyFile

{

public static void main(String args[]) throws IOException

{

int n;

FileInputStream fin;

FileOutputStream fout;

try

{

try

{

fin = new FileInputStream(args[0]);

}

catch(FileNotFoundException e)

{

System.err.println(e);

return;

}

try

{

fout = new FileOutputStream(args[1]);

}

catch(FileNotFoundException e)

{

System.err.println(e);

return ;

}

}

catch(ArrayInedxOutBoundsException e)

{

System.err.println(e);

return ;

}

try

{

do

{

n = fin.read();

if( n != -1)

fout.write(n);

}

while(n != -1);

}

catch(IOException e)

{

System.err.println(e);

}

fin.close();

fout.close();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有