字节输出流-FileOutputStream
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节输出流-FileOutputStream相关的知识,希望对你有一定的参考价值。
IO-字节输出流-FileOutputStream
字节流
基本操作与字符流相同
但是它不仅可以操作字符,还可以操作其他的媒体文件
例程一个Jpg文件
java.io
类 OutputStream
public abstract class OutputStream
此抽象类是表示输出字节流的所有类的超类。
java.io
类 FileOutputStream
public class FileOutputStream extends OutputStream
字节流使用的是字节数组缓存区
FileOutputStream 用于写入诸如图像数据之类的原始字节的流。要写入字符流,请考虑使用 FileWriter。
package day20.io.p1.ByteStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class ByteStreamDeam { private static FileOutputStream fos; private static FileInputStream fis; public static void main(String[] args) throws IOException { //writeFile(); readFile(); readFile2(); } public static void readFile2() throws IOException { fis = new FileInputStream("temp\\fos.txt"); //创建一个缓冲区,缓冲读到的字节,字节流使用的肯定是字节数组 /*System.out.println(fis.available());//获取文件的字节数,可以创建一个大小刚好的缓冲区 //文件过大的时候,用fis.available() 作为缓冲区的长度是不准确的,内存容易溢出,危险 byte[] buf2 = new byte[fis.available()]; fis.read(buf2); System.out.println(new String(buf2)); */ //以1024倍数的方法建立数组大小比较安全 byte[] buf = new byte[1024]; int len = 0; while((len = fis.read(buf))!=-1){ System.out.println(new String(buf,0,len)); } fis.close(); }
public static void readFile() throws IOException { /* * 读取一个文件,必然要用输入流 * 找一个能操作文件的字节输入流 */ fis = new FileInputStream("temp\\fos.txt"); int by = 0; while((by = fis.read())!=-1){ System.out.println((char)by); } }
public static void writeFile() throws IOException { /* * 将内存中的数据写到硬盘上 * 1.输出 * 2.文件 * 3.因为要演示字节流,所以要找一个能处理文件的字节输出流 */ fos = new FileOutputStream("temp\\fos.txt"); //使用流对象的write方法,将数据写到目的地 byte[] buf = "abc".getBytes(); fos.write(buf);//没有刷新和关闭,数据直接写到了目的地 //字符流底层用的是字节流,字符流中有缓冲区, //字符流要操作文本型的字节数据的时候,多了个动作---查表, //要查表,必须先把多个字节缓冲起来,查个表,才能出现相应的字符 //字节流原封不动的将原始字节写到目的地,它需要缓冲吗?它不需要。 //字节流要关闭吗?要关闭,因为关闭的主要目的是释放资源,字符流中的关闭有刷新和释放资源的双重作用。 fos.close(); } }
以上是关于字节输出流-FileOutputStream的主要内容,如果未能解决你的问题,请参考以下文章
字节流, FileOutputStream类,FileInputStream类,复制文件,字符流
阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_3_字节输出流_OutputStream类&FileOutputStream