zoukankan      html  css  js  c++  java
  • 33 文件IO流(二)

    33 文件IO流(二)

    1 IO流分类

    分类依据:

    ​ 流向程序里面还是流到程序外面

    分类结果:(以最基础的举例)

    A 、输入流

    ​ 字节输入流 File(来源)InPutStream

    a. 作用:

    ​ 从指定地址的文件读取数据到程序中

    b. 具体操作方法
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    public class TestRead {
        public static void main(String[] args) {
            File file=new File("C:\Users\SSS翱翔万里\Desktop\测试.txt");
            //首先你得判断它是否是文件
            if(file.isFile()){
                //如果是,就读取它里面的内容
                FileInputStream fileInputStream=null;
                byte[] bytes=null;
                try {
                    fileInputStream = new FileInputStream(file);
                    int length=0;
                    bytes= new byte[1024*8];
                    while((length=fileInputStream.read(bytes))!=-1){
                        System.out.print(new String(bytes,0,length));
                        //bytes数组存放的数据,最后一次可能不为满,
                        //所以长度为每次的有效长度是最好的
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                finally {
                    //finally中的语句是无论有无异常都会执行完的
                    //注意:虽然不关闭流,系统会自动帮你关闭且一般不会报错,但还是建议按标准流程来
                    try {
                        fileInputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }else{
                System.out.println("给的地址不是一个文件");
            }
        }
    }
    
    c.运行截图

    B、输出流

    ​ 字节输入流 File(来源)OutPutStream

    a.作用:

    ​ 把程序中的数据写到指定的文件里头

    b.具体操作:

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Scanner;
    public class TestWrite {
        public static void main(String[] args) {
            Scanner scanner=new Scanner(System.in);
            System.out.println("请输入你要写入的字符串");
            String str=scanner.next();
            File file=new File("C:\Users\SSS翱翔万里\Desktop\测试.txt");
            //首先你得判断它是否是文件
            if(file.isFile()){
                //如果是,就开始下面的往里面去写的操作
                FileOutputStream fileOutputStream=null;
                byte[] bytes=null;
                try {
                    //如果不写true,则默认是覆盖原来的内容
                    fileOutputStream = new FileOutputStream(file,true);
                    //因为是字节流,所以得把字符串转换成bytes[]数组
                    fileOutputStream.write(str.getBytes());
                } catch (Exception e) {
                    e.printStackTrace();
                }
                finally {
                    //finally中的语句是无论有无异常都会执行完的
                    //注意:虽然不关闭流,系统会自动帮你关闭且一般不会报错,但还是建议按标准流程来
                    try {
                        fileOutputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }else{
                System.out.println("给的地址不是一个文件");
            }
        }
    }
    
    
    c.运行截图:


    (1)


    (2)


    (3)

    2. 总结

    1. 输入流和输出流都是需要关闭的.(为防止忘记写,在建立实例化完流对象操作时,就在下面一行写该对象的关闭操作)

    2. 为了防止输入流和输出流的源头不存在,会抛出FileNotFoundException异常,可以人为的去加个if条件判断

    3. 对文件进行输出流操作时,默认为覆盖操作,若想追加,直接令调用构造方法,传递的参数除了文件对象(含有文件的地址信息),后面再加上true;

       fileOutputStream = new FileOutputStream(file,true);
      
  • 相关阅读:
    2003开机自动登陆然后马上锁定计算机
    修改DNS、网关的VBS代码,不需重起即时生效
    页面自动刷新代码
    dos命令给权限
    无法运行VBS代码
    去掉2003或2kserver版的系统启动报错
    让易语言的信息框总在最前
    教你轻松搞定RJ45网线接头
    小技巧:如何设定永久通用WinRAR压缩密码
    Bootstrap入门教程
  • 原文地址:https://www.cnblogs.com/SSSzhanglingzhi/p/14115981.html
Copyright © 2011-2022 走看看