文章目录
- 1.使用输入流的步骤
- 1.1.使用输入流的4个基本步骤
- 1.2.具体编码(以FileInputStream为例)
- 1~2步的实现:可以使用下列构造方法
- FileInputStream(String name);
- FileInputStream(File file);
- 3.让输入流读取源中的数据:通过使用read方法实现
- int read();
- int read(byte b[]);
- int read(byte b[] ,int off,int len);
- 4.关闭流
- close();
- 1.3具体实例
- 2.输出流使用步骤
- 2.1.使用输出流的基本步骤
- 2.2.具体编码(以FileOutputStram为例)
- 1.给出输出流的目的地
- 2.创建指向目的地的输出流
- FileOutputStream(String name);
- FileOutputStream(File file);
- 3.使用输出流写字节
- void write(int n);
- void write(byte b[]);
- void write(byte b[],int off,int len);
- 4.关闭输出流。
- void close();
- 2.3 具体实例
1.使用输入流的步骤
1.1.使用输入流的4个基本步骤
- 步骤1:设定输入流的源。(创建file对象或路径)
- 步骤2:创建指向源的输入流。(创建指向file对象|文件路径的流对象)
- 步骤3:让输入流读取源中的数据。(调用read方法)
- 步骤4:关闭输入流。(调用close方法)
1.2.具体编码(以FileInputStream为例)
1~2步的实现:可以使用下列构造方法
FileInputStream(String name);
使用给定的文件名name创建一个FileInputStream流。其中name指向的文件与源代码文件所在的目录是并列关系
FileInputStream(File file);
使用File对象创建一个输入流。
说明:上述两种方法中的参数name和file指定的文件称为输入流的源,输入流的作用是打开了一个到达文件的通道
用法如下:
try{
FileInputStream in = new FileInputStream("hello.txt");
}
catch(IOException e){
System.out.println("File read error:"+e);
}
(第二种构造方法类似于上述)
try{
File file=new File("hello.txt");
FileInputStream in=new FileInputStream(file);
}catch(IOException e){
System.out.println("File read error:"+e);
}
3.让输入流读取源中的数据:通过使用read方法实现
int read();
该方法从源中读取单个字节的数据,返回0~225之间的一个整数,如果未读出字节就返回-1,每调用一次,读取游标向后移动一位。
int read(byte b[]);
该方法从源中试图读取b.length个字节到字节数组b中,返回实际的读取字节数目。如果到达文件的末尾则返回-1.
int read(byte b[] ,int off,int len);
该方法从源中试图读取len个字节到字节数组b中,并返回实际读取的字节数目。参数off指定从字节数组的某个位置开始存放读取的数据。如果到达文件的末尾,则返回-1.
4.关闭流
close();
此方法为关闭流的方法。
注意:FileInputStream按顺序地读取文件,只要不关闭流,每次调用read方法就顺序地读取源中其余的内容直到源的末尾或被关闭。
1.3具体实例
/**
* 学习使用文件字节输入流的步骤
*/
public static void useDemo() throws IOException {
//1.创建文件源对象
File file = new File("麻子.txt");
//2.创建文件字节输入流对象并指向文件源对象
InputStream fileStream = new FileInputStream(file);
//3.让输入流读取源中的数据
int n;
while ((n=fileStream.read())!=-1){
System.out.print((char)n);
}
//4.读取完毕,调用close方法关闭流,释放系统资源
fileStream.close();
}
2.输出流使用步骤
2.1.使用输出流的基本步骤
- 步骤1:给出输出流的目的地。(创建file对象)
- 步骤2:创建指向目的地的输出流。(创建输出流的对象指向file对象)
- 步骤3:让输出流把数据写入到目的地。(调用write方法)
- 步骤4:关闭输出流。(调用close方法)
2.2.具体编码(以FileOutputStram为例)
1.给出输出流的目的地
一般目的地为File对象或String对象指定路径的文件。
2.创建指向目的地的输出流
我们可以使用FileOutputStream类具有刷新功能的构造方法创建指向文件的输出流:
FileOutputStream(String name);
此方法使用给定的文件名name创建FileOutputStream流。其中name指向的文件与源代码文件所在的目录是并列关系
FileOutputStream(File file);
此方法使用File对象创建FileOutputStream流。
说明:上述两种方法中的参数name和file指定的文件称为输出流的目的地,输出流的作用是打开了一个到达文件的通道
3.使用输出流写字节
方法:
void write(int n);
该方法向目的地写入单个字节。
void write(byte b[]);
该方法向目的地写入一个字节数组。
void write(byte b[],int off,int len);
该方法给定字节数组中起始于偏移量off处取len个字节写到目的地。
4.关闭输出流。
void close();
注意:FileOutputStream流顺序地写入文件,只要不关闭流,每次调用write方法就顺序地向目的地写入内容,直到流被关闭
2.3 具体实例
public static void useDemo() throws IOException {
//创建目的地
File file = new File("四郎.txt");
//创建指向目的地的输出流
OutputStream outputStream = new FileOutputStream(file);
//准备要写的数据
String str = "大家好,我是四郎,我喜欢麻子";
//调用write方法进行写入
outputStream.write(str.getBytes(StandardCharsets.UTF_8));
//调用close方法关闭流
outputStream.close();
}