java基础--IO(输入输出流)
IO概述:
输入输出都是从程序的角度来说的
输入流:数据流向程序
输出流:数据从程序流出

字节流:一切文件数据都是字节
字节输出流【OutputStream】:
此抽象类表示所有输出字节流的所有类的超类(父类)
定义了子类的公用成员方法:

字节输出流的使用步骤:
1.创建一个FileOutputStream对象,构造方法中传递写入数据的目的地
2.调用filrOutputStream中的write()方法,把数据写入到文件中
3.释放资源
public class FileOutputStreamTest { public static void main(String[] args) throws IOException { FileOutputStream fo=new FileOutputStream("E:\\a.txt"); fo.write(50); fo.close(); }
一次写多个字节的方法:
write(byte[] b) 将b.length字节从指定字节数组写入此输出流
write(byte[] b, int off,int len)off是开始索引 len是写几个字节 从指定字节数组输入 len字节,从偏移量off 开始输入此输出流
public static void main(String[] args) throws IOException { FileOutputStream fo=new FileOutputStream("E:\\a.txt"); byte[] bytes={65,66,67,68,69};//ABCDE // byte[] bytes={-65,-66,-67,68,69};//烤紻E fo.write(bytes); fo.write(bytes, 1, 2);//ABCDEBC //字符串转数组的方法 byte[] bytes1 = "你好".getBytes(); System.out.println(Arrays.toString(bytes1));//[-28, -67, -96, -27, -91, -67] fo.write(bytes1);//ABCDEBC你好 fo.close(); }
字节输入流FileInputStream
使用步骤:
1.创建FileInputStream对象,绑定要读取的数据源
2.使用对象中的read()方法
3.释放资源
建一个a.txt文件内容为abc,创建一个类,读取信息
package com.zhs.io; import java.io.FileInputStream; import java.io.IOException; public class FileInputDemo { public static void main(String[] args) throws IOException { FileInputStream fio=new FileInputStream("E:\\JavaBase\\FirstPro\\src\\a.txt"); // int len = fio.read(); // System.out.println(len);//97 // int len1 = fio.read(); // System.out.println(len1);//98 // int len2 = fio.read(); // System.out.println(len2);//99 int len=0; while ((len=fio.read())!=-1){ System.out.println((char) len);//char()将读取的信息转成字符 } fio.close(); } }
一次读取单个字节与多个字节的图解

循环实现一次读取多个字符:
package com.zhs.io; import java.io.FileInputStream; import java.io.IOException; public class FileInputDemo { public static void main(String[] args) throws IOException { FileInputStream fio=new FileInputStream("E:\\JavaBase\\FirstPro\\src\\a.txt"); byte[] bytes=new byte[1024]; int len=0; while ((len=fio.read(bytes))!=-1){ //String(bytes,0,len)读取有效长度的字符 System.out.println(new String(bytes,0,len)); } fio.close(); } }
文件复制:

文件复制:
读取一个字节,写入一个字节方式:
//创建字节输入流对象,绑定要读取的数据源 FileInputStream fis=new FileInputStream("E:\\JavaBase\\FirstPro\\src\\a.txt"); //创建字节输出流对象,绑定要写入的数据目的地 FileOutputStream fio=new FileOutputStream("D:\\a.txt"); int len=0; //使用字节输入流对象的read()方法进行读取 while ((len=fis.read())!=-1){ //使用字节输出流对象的write()方法进行写入 fio.write(len); } //释放资源,(先关闭写的后关闭读的,写完肯定已经读完了) fio.close(); fis.close();
使用数组缓冲,一次读取写入多个字节(推荐使用)
//创建字节输入流对象,绑定要读取的数据源 FileInputStream fis=new FileInputStream("E:\\JavaBase\\FirstPro\\src\\a.txt"); //创建字节输出流对象,绑定要写入的数据目的地 FileOutputStream fio=new FileOutputStream("D:\\a.txt"); int len=0; //使用字节输入流对象的read()方法进行读取 // //一次读取一个,写入一个字节方式 // while ((len=fis.read())!=-1){ // //使用字节输出流对象的write()方法进行写入 // fio.write(len); // } //数组缓冲读取多个字节,写入多个字节方式 byte[] bytes=new byte[1024]; while ((len=fis.read(bytes))!=-1){ //从0开始,读取有效长度的字节 fio.write(bytes,0,len); } //释放资源,(先关闭写的后关闭读的,写完肯定已经读完了) fio.close(); fis.close();

浙公网安备 33010602011771号