javaIO

程序在运行期间,可能需要从外部的存储媒介或其他程序中读入所需要的数据,这就需要使用输入流;程序在处理数据后,可能需要将处理的结果写入到永久的存储媒介中或传送给其他的应用程序,这就需要使用输出流。
输入流的指向称为它的源,程序通过输入流读取源中的数据;输出流的指向称为它的目的地,程序通过输出流把数据传送到目的地。
Java.io提供大量的流类,所有输入流都是抽象类InputStream或抽象类Reader的子类,而所有输出流都是抽象类OutputStream或抽象类Writer的子类。

File类

创建一个File类对象的构造方法有3个:
1.File(String filename);
2.File(String directoryPath,String filename);
3.File(File dir,String filename);
其中,filename是文件名字,directoryPath是文件的路径,dir为一个目录。
常用的File类方法:
public String getName() 获取文件的名字
public boolean canRead() 判断文件是否是可读的
public boolean canWrite() 判断文件是否被写入
public boolean exists() 判断文件是否存在
public long length() 获取文件的长度(单位是字节)
public String getAbsolutePath() 获取文件的绝对路径

import java.io.*;
public class Example{
	public static void main(String arg[]) {
		File f=new File("C:\\ch1","Example.java");
		System.out.println(f.getname()+"是可读的吗:"+f.canRead());
	}
}

Flie对象调用方法public boolean mkdir()创建一个目录,如果创建成功返回true,否则返回false(如果该目录已经存在将返回false)。
列出目录中的文件
public String[] list() 用字符串形式返回目录下的全部文件
public File [] listFiles() 用File对象形式返回目录下的全部文件

文件字节输入流

使用输入流通常包括4个基本步骤:
1.设定输入流的源;
2.创建指向流的输入流;
3.让输入流读取源中的数据;
4.关闭输入流。
构造方法:可以使用FileInputStream类的下列构造方法创建指向输入流:
FileInputStream(String name);
FileInputStream(File file);
使用输入流读取字节
字节输入流的read方法以字节为单位读取源中的数据。
int read() 输入流调用该方法从源中读取单个字节的数据,该方法返回字节值。
int read(byte b[]) 输入流调用该方法从源中试图读取b.length个字节到字节数组b中,返回实际读取的字节数目。
int read(byte b[],int off,int len)输入流调用该方法从源中试图读取len个字节到字节数组b中,并返回实际读取的字节数目。

文件字节输出流

使用输出流通常包括4个基本步骤:
1.给出输出流的目的地;2.创建指向目的地的输出流;
3.让输出流把数据写入到目的地;4.关闭输出流;
构造方法:可以使用FileOutputStream类的下列具有刷新功能的构造方法创建指向文件的输出流:
FileOutputStream(String name);
FlieOutputStream(File file);
使用输出流写字节
void write(int n) 输出流调用该方法向目的地写数据
void write(byte b[]) 输出流调用该方法向目的地写入单个字节
void write(byte b[],int off,int len) 给定字节数组中起始于偏移量off处取len个字节写到目的地
void close()关闭输出流

文件字符输入、输出流

文件字节输入、输出流的read和write方法使用字节数组读写数据,即以字节为单位处理数据。

缓冲流

Buffered和BufferedWriter类创建的对象称为缓冲输入、输出流。二者增强了读写文件的能力。
BufferedReader流能够读取文本行,方法是readLine()
然后inTwo流调用readLine()方法读取。

随机流

RandomAccessFile类创建的流称作随机流,它既不是InputStream类的子类,也不是OutputStram类的子类。但他创建的流的指向既可以作为流的源,也可以作为流的目的地。
以下是RandomAccessFile类的两个构造方法:
RandomAccessFile(String name,String mode)参数name用来确定一个文件名,给出创建的流的源,也是流的目的地。
RandomAccessFile(File file,String mode)参数file是一个File对象,给出创建的流的源,也是流目的地。

数组流

字节数组流:
字节数组输入流ByteArrayInputStream和字节数组输出流ByteArrayOutputStream分别使用字节数组作为流的源和目的地。构造方法如下:
ByteArrayInputStream(byte [] buf);
ByteArrayInputStream(byte [] buf,int offset,int length);
字符数组流:
与字节数组流对应的是字符数组流CharArrayReader和CharArrayWriter类,字符数组流分别使用字符数组作为流的源和目标。

数据流

DataInputStream和DataOutputStream类创建的对象称为数据输入流和数据输出流。
以下是DataInputStream和DataOutputStream的构造方法:
DataInputStream(InputStream in)创建的数据输入流指向一个由参数in指定的底层输入流。
DataOutputStream(OutputStream out)创建的数据输出流指向一个由参数out指定的底层输入流。

对象流

ObjectInputStream和ObjectOutputStream类分别是InputStream和OutputStream类的子类。ObjectInputStream和ObjectOutputStream类创建的对象称为对象输入流和对象输出流。
ObjectInputStream和ObjectOutputStream类的构造方法如下:
ObjectInputStream(InputStream in)
ObjectOutputStream(OutStream out)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值