栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

IO流知识总结1

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IO流知识总结1

文件可认为是相关记录或放在一起的数据的集合。 JAVA通过File类来访问文件属性 File类的常用方法 boolean exists( )     判断文件或目录是否存在 boolean isFile( )     判断是否是文件 boolean isDirectory( )    判断是否是目录 String getPath( )    返回此对象表示的文件的相对路径名 String getAbsolutePath( )    返回此对象表示的文件的绝对路径名 String getName( )    返回此对象表示的文件或目录的名称 boolean delete( )    删除此对象指定的文件或目录 boolean createNewFile( )      创建名称的空文件,不创建文件夹 long length()     返回文件的长度,单位为字节, 如果文件不 存在,则返回 0L 案例:
 public static void main(String[] args) throws IOException {
        //File  是文件和目录径名的抽象表示
        //文件和目录是可以通过File封装成对象的     封装的并不是真正的文件,是路径名而已、可以存在,也可以不存在。
        //将来是要通过具体的操作吧这个路径的内容转化为具体存在的
        // String pathname    通过给定的路径名字付串转化为抽象路径名来创建新的File实例
        File file=new File("D:\JAVA\itcast\java.txt");
        System.out.println(file);
        File file1=new File("D:\JAVA\itcast","java.txt");
        System.out.println(file1);
        File file2=new File("D:\JAVA\itcast");
        File file3=new File(file2,"java.txt");
        System.out.println(file3);

        //File类的创建功能
        //  创建会显示true,创建过后再次输出的话会输出false        返回的是boolean类型      创建了文件java.txt
        //createNewFile  方法
        File file4=new File("D:\JAVA\itcast\java.txt");
        System.out.println(file4.createNewFile());

        //  创建会显示true,创建过后再次输出的话会输出false        返回的是boolean类型      创建目录 javaSE
        //mkdir 方法
        File file5=new File("D:\JAVA\itcast\JavaSE");
        System.out.println(file5.mkdir());


        //  创建会显示true,创建过后再次输出的话会输出false        返回的是boolean类型      创建目录 javaSE
        //mkdirs  创建多级目录
        File file6=new File("D:\JAVA\itcast\JavaSEE\javasee");
        System.out.println(file6.mkdirs());

        //  创建会显示true,创建过后再次输出的话会输出false        返回的是boolean类型      创建目录 javaSE
        //注意路径的是文件,还是目录  ,不管是目录还是文件都只能存在一个名字一样的
        File file7=new File("D:\JAVA\itcast\Javasess.txt");
        System.out.println(file7.createNewFile());


        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");

        //判断和获取方法
        //isDirectory  File是否为目录   ;  isFile是否为文件     ;      exists   File是否存在
        File file8=new File("D:\JAVA\itcast\java1.txt");
        System.out.println(file8.isDirectory()); //false
        System.out.println(file8.isFile());   //true
        System.out.println(file8.exists());   //true
        //getAbsolutePath  返回此抽象路径的绝对路径字符串 ;getPath  返回创建Flile对象时的路径 ;getName   返回此抽线路径表示的文件或者目录名称
        System.out.println(file8.getAbsolutePath());
        System.out.println(file8.getPath());   //输出文件名称
        System.out.println(file8.getName());//文件名       java1.txt

        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");

        //oubic String [] list显示路径表示的目录中的文件和目录的名称字符串数组
        //
        File file9=new File("D:\JAVA\itcast");
        String[] strArray = file9.list();   //ctrl+alt+v  补全的代码
        for (String str:strArray){
            System.out.println(str);
        }

        System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
        File[] fileArray = file9.listFiles();
        for (File file01:fileArray){
//            System.out.println(file01);//返回绝对路径
//            System.out.println(file1.getName());//返回路径文件和目录的名称和上方的String[]list方法返回的是一样的东西。但是这个可以加判断
            if (file01.isFile()){  //只要文件   换成isFile 只返回文件   isDirectory 只返回目录名称
                System.out.println(file01.getName());
            }
        }
        //绝对路径是完整路径,相对流经是不完整的
        //\itcast\java.txt   会在项目中创建一个文件或者目录
        //目录中有内容时,不能直接删除,先删除目录里面的目录或者文件,才可以删除




    }
流的基本概念 通过流来读写文件 : 流是指一连串流动的字符,是以先进先出方式发 源数据源------》读到程序   :这种是输入流 程序写道------》目标数据源 : 这是输出流 JAVA流的分类 按流向区分 分为两种   1、inputstream 和 reader作为基类  :输入流                                      2、outputstream 和 writer作为基类: 输出流 输入输出流是相对于计算机内存来说的 , 而不是相对于源和目标。 按处理数据单元分类分为:字节流分为两种  1、字节流输入流 inputstream为基类                                                                        2、字节流输出流 outputstream 为基类                                             字符流分为两种 1、字符流输入流reader为基类                                                                        2、字符流输出流writer为基类 字节流是 8 位通用字节流,字符流是 16 位 Unicode 字符流。 流的分类 功能不同 1、节点流:可以直接从数据源或目的地读写数据。 2、处理流(包装流):不直接连接到数据源或目的地,是其他流进行封装。目的主要是简化操作 和提高性能。 节点流和处理流的关系 1、节点流处于io操作的第一线,所有操作必须通过他们进行 2、处理流可以对其他流进行处理(提高效率或操作灵活性) 文件的读写 文本文件的读写  用FileInputStream和FileOutputStream读写文本文件  用BufferedReader和BufferedWriter读写文本文件  二进制文件的读写使用DataInputStream和DataOutputStream读写二进制文件以及基本数据类型 数据的读写 对象的读写 使用ObjectInputStream和ObjectOutputStream读写对象(序列 化与反序列化) 使用FileInputStream 读文本文件顺序 1、引入相关的类 2、 构造文件输入流 FileInputStream 对象 3、 读取文本文件的数据 4、关闭文件流对象 InputStream类常用方法 int read( )  int read(byte[] b)  int read(byte[] b,int off,int len)  void close( )  int available() 子类FileInputStream常用的构造方法  FileInputStream(File file)  FileInputStream(String name) 案列:
public static void main(String[] args) {
        File file=new File("c:\1.txt");
        FileInputStream fis=null;
        try {
            fis=new FileInputStream(file);
             int length=0;
             while ((length=fis.read())!=-1){
                 System.out.println(length);
             }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
使用FileOutputStream 写文本文件的顺序 1、引入相关的类 2、构造文件数据 3、流输出对象 4、将数据写入文本文件 5、关闭文件流 6、对象 OutputStream类常用方法  void write(int c)  void write(byte[] buf)  void write(byte[] b,int off,int len)  void close( ) 子类FileOutputStream常用的构造方法  FileOutputStream (File file)  FileOutputStream(String name)  FileOutputStream(String name,boolean append) 1 、前两种构造方法在向文件写数据时将覆盖文件中原有的内容 2 、创建 FileOutputStream 实例时,如果相应的文件并不存在,则会自动创建一个 空的文件 案例:
 public static void main(String[] args) throws IOException {
      
     
        FileOutputStream f1=null;
        try {
             f1=new FileOutputStream("D:\JAVA\itcast\Fzhang.txt",true);
            f1.write("zhang".getBytes());
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            if (f1!=null){
                try {
                    f1.close();
                }catch(IOException e) {
                    e.printStackTrace();
                }

            }
        }


        //最后要释放资源     void close关闭文件输出并释放与此流相关联的任何系统资源
        f1.close();


    }
public static void main(String[] args) throws IOException {
      
     
        FileOutputStream f1=null;
        try {
             f1=new FileOutputStream("D:\JAVA\itcast\Fzhang.txt");
              byte[] a = "zhang".getBytes();
              f1.write(a);
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            if (f1!=null){
                try {
                    f1.close();
                }catch(IOException e) {
                    e.printStackTrace();
                }

            }
        }


        //最后要释放资源     void close关闭文件输出并释放与此流相关联的任何系统资源
        f1.close();


    }

复制图片

案例:

private static void methon4(File srcFile, File desFile) throws IOException {

  File srcFile = new File("E:\流浪地球.jpg");

  File desFile = new File("C:\流浪地球.jpg");

  // 封装数据源

  FileInputStream fi = new FileInputStream(srcFile);

  //封装目的地

  FileOutputStream fw = new FileOutputStream(desFile);
  
  //复制
  int by = 0;

  while((by = fi.read()) != -1) {

   fw.write(by);

  }
  
  //释放资源

  fi.close();

  fw.close();
 }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/851633.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号