首先IO流基本操作步骤
1.实例化对象,参数传递目的地(多态)
2.调用方法操作数据
3.关闭流

一、字节输出流 :(OutputStream),文件通常使用该类的子类FileOutStream,以多态的方法进行操作
1.构造方法:FileOutputStream(File file)传递一个File类对象或者引用
FileOutputStream(File file,boolean append)第一个参数传递一个File类对象或者引用,第二个参数如果是true,则表示在文件末尾追加内容,而不是写入文件开始处
FileOutputStream(String name)传入目的地字符串
FileOutputStream(String name,boolean)为true则追加
2.主要方法:
write(byte[ ] b)参数为字节数组
write(byte[ ] b,int off,int len)写入字符串,从off开始,长度为len

public class Demo03 {
    public static void main(String[] args) throws IOException {
        //创建文件实例
        File file=new File("G:"+File.separator+"demo.txt");
        //判断路径是否存在,如果不存在,则创建该路径
        if(!file.getParentFile().exists())
            file.getParentFile().mkdirs();
        //判断文件是否存在,若不存在,则创建该文件
        if (!file.exists()) {
                file.createNewFile();
        }
        String bys="\r\nwww.sks";
        //将bys字符串转换为字节数组
        byte[] bytes=bys.getBytes();
        //int len=bytes.length;
        //多态,输出流实例化
        OutputStream file1 = new FileOutputStream(file,true);
        //写入操作
        file1.write(bytes,0,5);
        //关闭流
        file1.close();
    }
}

二、字节输入流(InputStream),文件操作通常使用该子类FileInputStream类来实现
1.构造方法
FileInputStream(File file)传入File类对象或者引用
FileInputStream(String name)传入路径字符串
2.主要方法
write(byte[ ] b) 读取b.length个字节
write(byte[ ] b,int off,int len)读取最多len个字节

public class Demo04 {
    public static void main(String[] args) throws IOException {
        //创建文件实例
        File file = new File("G:" + File.separator + "demo.txt");
        //输入流实例化
        FileInputStream fileInputStream = new FileInputStream(file);
        byte[] bytes = new byte[512];
        //读入len个字节到字节数组中去
        fileInputStream.read(bytes,0,5);
        //转换为字符串
        String content=new String(bytes);
        System.out.println(content);
        //关闭流
        fileInputStream.close();
    }
}

三、字符输出流(Writer) 文件通常使用该子类FileWriter类进行操作
1.构造方法
FileWriter(File file)参数为File类对象
FileWriter(File file ,boolean append)append为true则在文件末尾追加数据
FileWriter(String fileName)文件路径
FileWriter(String fileName,boolean append)与上面类似
2.主要方法
write(char[ ] cbuf)写入字符数组
write(char[ ] cbuf,int off ,int len)写入字符数组的一部分
write(String str)写入字符串
write(String str,int off,int len)写入字符串的一部分

public class Demo06 {
    public static void main(String[] args) throws IOException {
        File file = new File("G:" + File.separator + "demo.txt");
        FileWriter fileWriter = new FileWriter(file);
        String s="zms";
        //转换为字符串
        char[] chars =s.toCharArray();
        fileWriter.write(chars);
        fileWriter.close();
    }
}

四、字符输入流Reader通常使用该子类FileReader进行操作
1.构造方法:
FileWriter(File file)参数为File类对象
FileWriter(String fileName)文件路径
2.主要方法
write(char[ ] cbuf)读入到字符数组
write(char[ ] cbuf,int off ,int len)读入到字符数组的一部分
skip(long n)跳过某字符

public class Demo08 {
    public static void main(String[] args) throws IOException {
        File file = new File("G:" + File.separator + "demo.txt");
        if (!file.getParentFile().exists())
            file.getParentFile().mkdirs();
        if (!file.exists()) {
            file.createNewFile();
        }
        FileInputStream stream = new FileInputStream(file);
        Reader r = new InputStreamReader(stream);
        char[] chars = new char[124];
        r.read(chars);
        String s = new String(chars);
        System.out.println(s);
        r.close();
        stream.close();
        System.getProperties().list(System.out);
    }
}
posted on 2020-07-22 15:55  凸凸大军的一员  阅读(59)  评论(0编辑  收藏  举报