小贴士:
1.虽然参数为int类型四个字节 , 但是只会保留一个字节的信息写出 。
2.流操作完毕后 , 必须释放系统资源 , 调用close方法 , 千万记得 。
写出字节数组: write(byte[] b) , 每次可以写出数组中的数据 , 代码使用演示:
public class FOSWrite {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileOutputStream fos = new FileOutputStream("fos.txt");// 字符串转换为字节数组byte[] b = "程序员".getBytes();// 写出字节数组数据fos.write(b);// 关闭资源fos.close();}}输出结果: 程序员
- 写出指定长度字节数组: write(byte[] b, int off, int len) ,每次写出从off索引开始 , len个字节 , 代码 使用演示:
经过以上的演示 , 每次程序运行 , 创建输出流对象 , 都会清空目标文件中的数据 。如何保留目标文件中数据 , 还能 继续添加新数据呢?
public FileOutputStream(File file, boolean Append) : 创建文件输出流以写入由指定的 File对象表示的 文件 。
public FileOutputStream(String name, boolean append) : 创建文件输出流以指定的名称写入文件 。
这两个构造方法 , 参数中都需要传入一个boolean类型的值 , true 表示追加数据 , false 表示清空原有数据 。这样创建的输出流对象 , 就可以指定是否追加续写了 , 代码使用演示:
public class FOSWrite {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileOutputStream fos = new FileOutputStream("fos.txt" , true);// 字符串转换为字节数组byte[] b = "abcde".getBytes();// 写出从索引2开始 , 2个字节 。索引2是c , 两个字节 , 也就是cd 。fos.write(b);// 关闭资源fos.close();}}文件操作前:cd文件操作后:cdabcde写出换行
windows系统里 , 换行符号是。
以指定是否追加续写了 , 代码使用演示:
public class FOSWrite {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileOutputStream fos = new FileOutputStream("fos.txt");// 定义字节数组byte[] words = {97,98,99,100,101};// 遍历数组for (int i = 0; i < words.length; i++) {// 写出一个字节fos.write(words[i]);// 写出一个换行, 换行符号转成数组写出fos.write("".getBytes());}// 关闭资源fos.close();}}输出结果:a b c d e回车符 和换行符 :
回车符:回到一行的开头(return) 。
换行符:下一行(newline) 。
系统中的换行: Windows系统里 , 每行结尾是 回车+换行 , 即 ;
Unix系统里 , 每行结尾只有 换行 , 即 ;
mac系统里 , 每行结尾是 回车 , 即。
从 Mac OS X开始与linux统一 。
2.4 字节输入流【InputStream】
java.io.InputStream 抽象类是表示字节输入流的所有类的超类 , 可以读取字节信息到内存中 。它定义了字节输入 流的基本共性功能方法 。
public void close() :关闭此输入流并释放与此流相关联的任何系统资源 。
public abstract int read() : 从输入流读取数据的下一个字节 。
public int read(byte[] b) : 从输入流中读取一些字节数 , 并将它们存储到字节数组 b中。
小贴士:
close方法 , 当完成流的操作时 , 必须调用此方法 , 释放系统资源 。
2.5 FileInputStream类
java.io.FileInputStream 类是文件输入流 , 从文件中读取字节 。
构造方法
FileInputStream(File file) : 通过打开与实际文件的连接来创建一个 FileInputStream , 该文件由文件系 统中的 File对象 file命名 。
FileInputStream(String name) : 通过打开与实际文件的连接来创建一个 FileInputStream , 该文件由文件 系统中的路径名 name命名 。
当你创建一个流对象时 , 必须传入一个文件路径 。该路径下 , 如果没有该文件,会抛出 FileNotFoundException。
推荐阅读
- Java并发的原子性、可见性、有序性
- 数据结构Java实现:循环链表和双向链表
- Javascript创建对象方式总结
- 情侣名字简短好听精选 情侣名字简短好听
- 十二星座古风复姓名字精选 十二星座古风复姓名字
- 茶文化的起源
- 雄鹿两个字母哥 雄鹿34号字母哥
- 读海底两万里有感600字 读海底两万里有感
- 15款Java程序员必备的开发工具
- 2022支付宝福气店礼物在哪看物流,2022支付宝集五福免费打印福字教程