I0流对象
10: Input Output I0作用是将数据从一个设备中流入到另-个设备
数据文件,从磁盘中流向内存中,从磁盘中流向移动存储设备从- -台计算机流向另
-台计算机
-切都是字节:任何数据文件都是字节组成,字节是计算机中最小的存储单元
2.1 I0流对象的分类
2.1.1按照操作的文件类型分类
●文本类型文件-选择流对象字符流
。什么是文本文件:使用文本工具,记事本,notepad++ ,editplus打开文件后人
类可以直接阅读
●非文本类型文件-选择流对象字节流
2.1.2按照数据的流向分类
●输入流: Java程序从其它地方读取数据
●输出流: Java程序中的数据,写入到其它地方
I
2.1.3 10流对象的分类归纳
●字节输出流
●字节输入流
●字符输出流
●字符输入流I
3.字节输出流
java.io.OutputStream是所有字节输出流的超类:可以写入任何类型文件
●写入字节的方法write
。void write(intb)写入单个字节
。void write(byteD b)写入字节数组
。void write(byteD b,int off,int len)写入数组的一部分,开始索引写入的个数
3.1 FileOutputStream
●构造方法: FileOutputStream(File file)
●构造方法: FileOutputStream(String file)
●创建字节输出流对象,绑定参数就是要写入的数据目的
3.2字节输出流写入文件的步骤
●创建字节输出流对象构造方法中,绑定文件路径,写入目的
●调用流对象的方法write写入数据
●释放资源
**字节输出流写入单个字节
package com.sdjzu.IOStream.output;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 写入
* */
public class OutputTest {
public static void main(String[] args) throws IOException {
writeByte();
}
/*
* 写入单个字节
* */
public static void writeByte() throws IOException {
//创建字节输出流对象,在构造方法中绑定文件路径,写入目的
FileOutputStream fos=new FileOutputStream("D:/FileOutputStream.tet") ;
//写入单个字节
fos.write(98);
//释放资源
fos.close();
}
}
字节输出流写入数组**
package com.sdjzu.IOStream.output;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
/*
* 字节输出流写入数组
* */
public class OutputArrayTest {
public static void main(String[] args) throws IOException {
method();
}
public static void method() throws IOException {
//创建字节输出流对象,并在构造器中写入目的
FileOutputStream fos=new FileOutputStream("D:/fileOutputStream1.tet");
byte[] bytes={97,98,100};
//写入数组
fos.write(bytes);
//写入字节数组中文
fos.write("您好字节输出流数组".getBytes(StandardCharsets.UTF_8));
//释放资源
fos.close();
}
}
3.5追加写入和换行
●追加写入FileOutputStream构造方法的第个参数写true
●换行写入使用Windows系统的换行符号\rIn
/*
* 追加写入与换行
* */
public static void writeAppend() throws IOException {
//创建输出流对象,在构造器中增加写入目的,以及释放追加
FileOutputStream fos1=new FileOutputStream("D:/writeAppend.txt",true);
byte[] bytes1={97,98,100};
//写入数组
fos1.write(bytes1);
fos1.write(bytes1);
fos1.write("\n".getBytes(StandardCharsets.UTF_8));
fos1.write("您好追加换行".getBytes(StandardCharsets.UTF_8));
}