package io;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
/**
- JAVA IO java标准的输入与输出
- Io:指的是input,output
- 输入流:inputStream,是从外界到我们程序的方向。
- 输入流是由于从外界读取数据的,java中所有的字节入流
- 都统一的继承自java.io.InputStream.该类是一个抽象类
- 定义了所有字节输入流都必须具有的读取字节的相关方法、
- 输出流:outputStream
- 输出流是由于向外界写出数据的,java.io.OutputStream是
- 所有字节输出流的超类,定义了相关写字节的方法。
- java将流划分为两大类:
- 节点流:真实连接程序与另一端的"管道",复杂实际搬运数据的流。
- 注:读写一定是基于节点流进行的。节点流又称"低级流"
- 处理流:处理流不能独立存在,必须连接在其他流上,目的是将其连接的流中
- 的数据经过当前处理流时可以对其进行某种加工处理,简化了我们在读写数据
- 是的处理工作。
- 处理流也称为"高级流"
*实际开发中,我们经常串联若干高级流并最终串联到低级流,使得数据在进行读写
*时流水线式的加工处理。这个过程也称为"流的连接",这也是我们学习java IO的
*精髓所在。
*
*而java标准的IO的好处则在于让我们以统一的,标准的读写操作与外接设备进行数据交换。
*
*文件流
*文件流是一堆低级流,用于读写文件。
*java.io.FileOutputStream:用于向文件中写数据的流
*java.io.FileIntputStream:用于从文件中读取数据的流。
*
*
- @author W
*/
public class FileOutputStreamDemo {
public static void main(String[] args) throws IOException {
/*
* 文件流默认的创建方式为覆盖写模式,即:若写的文件
* 已经存在,你们创建文件流时,文件流会现将该文件数据全部清除。
* 然后在将通过该流写出的数据写入到文件中。
*
* 文件流是基于IO的标准读写,而IO的读写是顺序读写模式,
* 只能向后读或写,不能回退。
* 而RAF是基于指针的【随机读写】形式,所以可以任意读写文件
* 指定位置的内容。
*/
// FileOutputStream fos = new FileOutputStream("fos.txt");
/*
* 文件输出流提供另一个构造方法:
* 可以再传入一个boolean值参数,若该值为true,
* 则是追加写模式
* 这种模式下,若写操作的文件已经存在,则原有数据
* 全部保留,通过当前留写入的内容会被追加到文件末尾
*/
FileOutputStream fos = new FileOutputStream("fos.txt",true);
// RandomAccessFile fos = new RandomAccessFile("fos.txt","rw");
String str = "走位,";
byte[] data = str.getBytes("GBK");
fos.write(data);
str = "鬼手一刀";
data = str.getBytes("GBK");
fos.write(data);
System.out.println("写出完毕");
fos.close();
}
}