1.IO流概述
IO流:输入输出流
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象,即数据在两设备间传输称为流
流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
IO流分类:
根据处理数据类型不同分为:字符流和字节流
根据数据流向不同分为:输入流和输出流
2、字节输出流
OutputStream类
此抽象类是表示输出字节流所有类的超类。输出流接受输出字节并将这些字节发送到InputStream类某个接收器要向文件中输出,使用FileOutputStream类
3、字节输入流
InputStream类
该抽象类是表示字节输入流的所有类的超类
FileInputStream从文件系统中的某个文件中获得输入字节
输出流:
private static void out() throws IOException {
//1.确定目标文件
File file=new File("D:\\MyFile\\a.txt");
//2.构建一个文件输出流对象
OutputStream out=new FileOutputStream(file);
//输出的内容
String info="hello world";
//3.把内容写入到文件
out.write(info.getBytes());
//4.关闭流
out.close();
System.out.println("write success");
}
public static void main(String[] args) {
try {
out();
} catch (IOException e) {
e.printStackTrace();
}
}
结果:
输入流:
private static void in() throws IOException {
//1.确定目标文件
File file=new File("D:\\MyFile\\a.txt");
//2.创建输入流对象
InputStream in=new FileInputStream(file);
byte[] bytes=new byte[100];
StringBuilder buf=new StringBuilder();
int len=-1;//每次读取的字节长度
//把数据读入到bytes中,返回读取的字节数,当不等于-1时,表示读取到数据
while((len=in.read(bytes))!=-1){
//根据读取到的字节数组,再转换为字符串内容
buf.append(new String(bytes));
}
//关闭输入流
in.close();
System.out.println(buf);
}
public static void main(String[] args) {
try {
in();
} catch (IOException e) {
e.printStackTrace();
}
}
结果:
write()和read()方法底层是一个一个字节的读取或写入,且读取写入方法是native方法