java 文件操作 (2.1)

java 文件操作 (2.1)


编辑语言:Java
编译版本: JDK1.3 及以上
任务目标: 学习java文件操作机制
备注:博主完整文档以及code,会在百度云盘连接中共享

一、文件 I/O 输入输出

I /O (Input / Output , 输入输出)流提供一条通道程序,可以使用这条通道把源中的字节序列送到目的地,Java语言定义了许多类专门负责各种方式的输入/输出, 这些类被放在 java.io 包中。其中,所有输入流类都是抽象类 InputStream (字节输入流) 或 抽象类的 Reader (字符输入流) 的子类 ;而所有输出流都是抽象类 OutputStrean (字节输出流)或抽象类 Writer (字符输出流) 的子类。

二、打开文件并读取其属性以及文件内容

获取文件相关属性在前一篇博客中提到,都是调用一些方法即可,FileInputStream 和 FileOutputStream 类用于来操作磁盘文件,提供基本的文件读出和写入能力。new String(byt,0,len) 是全部输出byte数组内的字符串,所以长度为len 。代码中有涵盖了写入和读出详见链接。

      String name = file.getName();  //获取文件名称
      long length = file.length();   //获取文件长度
      long lastModified = file.lastModified();  //获取文件最后修改时间      
      System.out.println("文件名称:"+ name);   //输出信息
      System.out.println("文件长度:"+length+"字节");   //默认以字节为单位
      System.out.println("文件最后修改时间:"+sdf.format(cal.getTime()));  //输出文件的最后更改时间
      .......
      FileInputStream in =new FileInputStream(file);  //创建FileInputStream类对象
      byte byt[] = new byte[1024];   //创建byt数组
      int len = in.read(byt);    //从文件中读取信息
     System.out.println("文中读到的信息是:"+new String(byt,0,len));  //一个字节数组byt从0取到len,取出来之后转换成String类

结果如下:
原文件为:这里写图片描述 控制台输出为:这里写图片描述

三、对文件进行移动

此部分用到了 removeTo 函数,对文件进行了存储位置移动!

try {
        if(f.renameTo(new File("E:\\word-move.txt"))) {  //renameTo()移动到指定的新位置
            System.out.println("移动成功!");  
        }else {
            System.out.println("文件移动失败!");    
        }  
        }catch(Exception e) {   //异常信息处理
            e.printStackTrace();
        }

显示结果:
这里写图片描述

四、文件复制

文件复制部分可参看https://www.cnblogs.com/1996swg/p/7173136.html 该博主的介绍,本认识用直接用FileInputStream和FileOutputStream进行文件的读取和写入,完成复制部分。

        in = new FileInputStream(" word.txt ");  //创建输入对象
        out = new FileOutputStream(" E:\\word-copy.txt ");  //创建输出对象
        while((data = in.read())!= -1) {
            out.write(data);  //输出文件写入字符
        }

下面是文件和源代码共享,Demo12 还介绍了对文本文件按行进行读取,每读取一行后显示此行,并统计此行有多少字节,有多少字符并显示统计结果,及其总行数。在此与大家共享!
链接:https://pan.baidu.com/s/1kXPfjraRdoVP7-HdpLsoog 密码:orob

猜你喜欢

转载自blog.csdn.net/qq_34734303/article/details/80150162
2.1