package javaio.in.demo1;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/*
字节输入流写数据快速入门 : 一次读一个字节
第一部分 : 字节输入流类
InputStream类 : 字节输入流最顶层的类 , 抽象类
--- FileInputStream类 : FileInputStream extends InputStream
第二部分 : 构造方法
public FileInputStream(File file) : 从file类型的路径中读取数据
public FileInputStream(String name) : 从字符串路径中读取数据
第三部分 : 字节输入流步骤
1 创建输入流对象
2 读数据
3 释放资源
*/
public class FileInputStreamDemo1 {
public static void main(String[] args) throws IOException {
// 创建字节输入流对象
FileInputStream fis=new FileInputStream("aaa.txt");
// 读数据 , 从文件中读到一个字节
// 返回的是一个int类型的字节
// 如果想看字符, 需要强转
int by = fis.read();
System.out.println((char)by);
fis.close();
}
}
public class FileInputStreamDemo2 {
public static void main(String[] args) throws IOException {
// 创建字节输入流对象
FileInputStream fis=new FileInputStream("aaa.txt");
int by;
while ((by=fis.read())!=-1){
System.out.println((char)by);
}
//释放资源
fis.close();
}
}
public class FileInputStreamDemo3 {
public static void main(String[] args) throws IOException {
//创建字节流输入对象
FileInputStream fis =new FileInputStream("D:\\Apache24\\htdocs\\brawlive\\site\\upload\\images\\202203\\29\\1648532403_284454_max.jpg");
//创建字流输出流对象
FileOutputStream fos = new FileOutputStream("copy.jpg");
int by;
while ((by=fis.read())!=-1){
fos.write(by);
}
//释放资源
fis.close();
fos.close();
}
}
public class FileInputStreamDemo4 {
public static void main(String[] args) {
FileInputStream fis =null;
FileOutputStream fos =null;
try{
//创建字节流输入对象
fis =new FileInputStream("D:\\Apache24\\htdocs\\brawlive\\site\\upload\\images\\202203\\29\\1648532403_284454_max.jpg");
//创建字流输出流对象
fos = new FileOutputStream("copy.jpg");
int by;
while ((by=fis.read())!=-1){
fos.write(by);
}
}catch (IOException e){
e.printStackTrace();
}finally {
//释放资源
if(fis==null){
try {
fis.close();
}catch (IOException e){
e.printStackTrace();
}
}
//释放资源
if(fos==null){
try{
fis.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
}
}
public class FileInputStreamDemo5 {
public static void main(String[] args) {
try (
//创建字节流输入对象
FileInputStream fis =new FileInputStream("D:\\Apache24\\htdocs\\brawlive\\site\\upload\\images\\202203\\29\\1648532403_284454_max.jpg");
//创建字流输出流对象
FileOutputStream fos = new FileOutputStream("copy.jpg");
) {
// 一次读写一个字节
int by;
while ((by = fis.read()) != -1) {
fos.write(by);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
FileInputStream类 :
public class FileInputStreamDemo6 {
public static void main(String[] args) throws IOException {
// 创建字节输入流对象
FileInputStream fis = new FileInputStream("aaa.txt");
byte[] bys = new byte[3];
int len;
while ((len = fis.read(bys)) != -1) {
System.out.print(new String(bys , 0 , len));
}
fis.close();
}
}