package com.heilong.io;
/*
*
* 输入字节流体系:
* ----|InputStream
* --------|FileInputStream
* --------|BufferedInputStream
*
* 输出字节流体系:
* ----|OutputStream
* --------|FileOutputStream
* --------|BufferedOutputStream
*
* */
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 使用FileInputStream读取文件数据的步骤:
* 1.找到目标文件
* 2.建立数据的输入通道
* 3.读取数据
* 4.关闭资源
*
* 使用FileOutputStream写出数据的步骤:
* 1.找到目标文件
* 2.建立数据的输出通道
* 3.写出数据
* 4.关闭资源
*
* 使用BufferedInputStream读取文件数据的步骤:
* 1.找到目标文件
* 2.建立数据的输入通道
* 3.建立缓冲输入字节流
* 4.读取数据
* 5.关闭资源
*
* 使用BufferedOutputStream写出数据的步骤:
* 1.找到目标文件
* 2.建立数据的输出通道
* 3.建立缓冲输出字节流
* 4.写出数据
* 5.关闭资源
* */
public class input_output_Stream {
public static void main(String[] args) throws IOException {
bufferedWriteTest1();
}
//方式一:使用BufferedOutputStream写出数据
public static void bufferedWriteTest1() throws IOException{
//1.找到目标文件
File file = new File("./src/data/b.txt");
//2.建立数据的输出通道
FileOutputStream fileOutputStream = new FileOutputStream(file);
//3.建立缓冲输出字节流
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
//4.写入数据
String data = "hello world";
bufferedOutputStream.write(data.getBytes());
//5.关闭资源
bufferedOutputStream.flush(); //刷新
bufferedOutputStream.close();
}
//方式一:使用BufferedInputStream读取文件数据
public static void bufferedReadTest1() throws IOException{
//1.找到目标文件
File file = new File("./src/data/a.txt");
//2.建立数据的输入通道
FileInputStream fileInputStream = new FileInputStream(file);
//3.建立缓冲输入字节流
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
//4.读取数据
int content = 0;
while((content=bufferedInputStream.read()) != -1){
System.out.print((char)content);
}
bufferedInputStream.close();
}
//方式二:使用字节数组写出数据
public static void writeTest2() throws IOException {
//1.找到目标文件
File file = new File("./src/data/b.txt");
//2.建立数据的输出通道
FileOutputStream fileOutputStream = new FileOutputStream(file);
//3.写出数据
String data = "hello world";
fileOutputStream.write(data.getBytes());
//4.关闭资源
fileOutputStream.close();
}
//方式一:每次写入一个字节
public static void writeTest1() throws IOException {
//1.找到目标文件
File file = new File("./src/data/b.txt");
//2.建立数据的输出通道
FileOutputStream fileOutputStream = new FileOutputStream(file);
//3.写出数据
fileOutputStream.write('h');
fileOutputStream.write('e');
fileOutputStream.write('l');
fileOutputStream.write('l');
fileOutputStream.write('o');
//4.关闭资源
fileOutputStream.close();
}
//方式四:使用缓冲字节数组配合while循环读取数据
public static void readTest4() throws IOException{
//1.找到目标文件
File file = new File("./src/data/a.txt");
//2.建立数据的输入通道
FileInputStream fileInputStream = new FileInputStream(file);
//3.读取数据
byte[] buf = new byte[1024];
int length = 0;
while((length = fileInputStream.read(buf)) != -1){
System.out.print("读取到的内容是:" + new String(buf, 0, length));
}
}
//方式三:使用缓冲字节数组读取数据
public static void readTest3() throws IOException{
//1.找到目标文件
File file = new File("./src/data/a.txt");
//2.建立数据的输入通道
FileInputStream fileInputStream = new FileInputStream(file);
//3.读取数据
byte[] buf = new byte[1024];
int length = fileInputStream.read(buf);
System.out.print("读取到的内容是:" + new String(buf, 0, length));
}
//方式二:read方法配合while循环读取数据
public static void readTest2() throws IOException{
//1.找到目标文件
File file = new File("./src/data/a.txt");
//2.建立数据的输入通道
FileInputStream fileInputStream = new FileInputStream(file);
//3.读取数据
int content = 0;
System.out.print("读取到的内容是:");
while((content = fileInputStream.read()) != -1){
System.out.print((char)content);
}
//4.关闭资源
fileInputStream.close();
}
//方式一:read方法一次读取一个字节
public static void readTest1() throws IOException{
//1.找到目标文件
File file = new File("./src/data/a.txt");
//2.建立数据的输入通道
FileInputStream fileInputStream = new FileInputStream(file);
//3.读取数据
int content = fileInputStream.read(); //读取一个字节的数据
System.out.println("读取到的内容是:" + (char)content);
//4.关闭资源
fileInputStream.close();
}
}
Java输入输出字节流及缓冲输入输出字节流使用方式
最新推荐文章于 2021-02-16 17:14:29 发布