字节流
2.1 IO流概述和分类
##IO流概述:
IO:输入/输出(input/ouput)
流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输
IO流就是用来处理设备间数据传输问题的
常见的应用:文件复制,文件上传,文件下载
按数据流向:输入流,输出流
输入流为读数据,输出流为写数据
按数据类型:字节输入流/输出流,字符输入流/输出流
一般来说是按数据类型来分的。
2.2 字节流写数据
输入流读数据:
public abstract class InputStream
extends Object
implements Closeable
Direct Known Subclasses:
AudioInputStream, ByteArrayInputStream, FileInputStream, FilterInputStream, InputStream, ObjectInputStream, PipedInputStream, SequenceInputStream, StringBufferInputStream
输出流写数据:
public abstract class OutputStream
extends Object
implements Closeable, Flushable
Direct Known Subclasses:
ByteArrayOutputStream, FileOutputStream, FilterOutputStream, ObjectOutputStream, OutputStream, PipedOutputStream
这里的抽象类InputStream、OutputStream表示 输入字节流、输出字节流的所有类的超类
字节流抽象类基类:
1、InputStream:这个抽象类是表示字节输入流的所有类的超类
2、OutputStream:这个抽象类是表示字节输出流的所有类的超类
3、子类名特点:子类名称都是以其父类名作为子类名的后缀
FileOutputStream:文件输出流用于将数据写入文件File
使用字节输出流写数据的步骤
1.创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件)
2.调用字节输出流对象的写数据方法
3.释放资源(关闭此输出流并释放与此流相关联的任何系统资源)
FileOutputStream(String name)
Creates a file output stream to write to the file with the specified name.
write(int b)
Writes the specified byte to this file output stream.
close()
Closes this file output stream and releases any system resources associated with this stream.
package dailyioStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo01 {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("src\\dailyioStream\\fos.txt");
/*
这里创建了字节输出流对象 fos
创建字节输出流对象这里一共有三步操作:
1.调用了系统功能创建了文件
2.创建了字节流输出对象
3.让字节输出流对象指向创建好的文件
*/
fos.write(97);//写到低层是97(ASCII码),但是我们打开文件内容是a
fos.write(57);
fos.write(55);
fos.close();//释放资源,关闭此文件输出流释放并与此流相关联的任何系统资源
}
}
2.3 字节流写数据的3种方式
void write(int b)
将指定的字节写入到此文件输出流,一次写一个字节数据
Writes the specified byte to this file output stream.
package dailyioStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
public class FileOutputStreamDemo02 {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("src\\dailyioStream\\fos.txt");
fos.write(97);
fos.close();
}
}
void write(byte[] b)
将b.length字节从指定的字节数组写入此文件输出流,一次写一个字节数组数据
Writes b.length bytes from the specified byte array to this file output stream.
package dailyioStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
public class FileOutputStreamDemo02 {
public static void main(String[] args) throws IOException {
FileOutputStream fos =