Java实现对文件的读与写

一、判断文档是否存在

1.File类概述:它是文件和目录路径名的抽象表示。
●文件和目录是 可以通过File封装成对象。
●对于File而言,其封装的并不是一个真正存在的文件, 仅仅是一个路径名。
2.File构造方法:
File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
3.创建一个文件流,给定a.txt文件的绝对路径,如下

 File f=new File("D:\\java文档\\文件任务\\itcast\\a.txt");//创建一个文件流,取a.txt文件的绝对路径

4.利用f.exists()&&f.isFile()判断该文件是否存在,且是文件类型,则进行接下来操作。

 if (f.exists()&&f.isFile()){//判断语句,如果该文件存在且是文件类型,执行下方操作}

5.获取该文件名和文件大小,其格式分别如下。
f.getName:获取该文件名字。
f.getlength:获取该文件大小。

        File f=new File("D:\\java文档\\文件任务\\itcast\\a.txt");//创建一个文件流,取a.txt文件的绝对路径
        if (f.exists()&&f.isFile()){//判断语句,如果该文件存在且是文件类型,执行下方操作
            System.out.println("存在该文件,该文件名是"+f.getName()+",文件大小是"+f.length());//输出

二、获取文件最终修改时间

1.为获取时间,需要创建一个日历对象,用来对时间进行操作。
2.利用f.lastModified()将获取的文件最终修改时间。
3.再将获取时间转化为时分秒格式。

 Calendar cal = Calendar.getInstance();//创建日历对象
            String timechange="";//设置最终显示时间格式初始化
            long time = f.lastModified();//获取文件最终修改时间
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//转换文件最后修改时间的格式
            cal.setTimeInMillis(time);
            timechange = formatter.format(cal.getTime());
            System.out.println(f.getName()+"最终修改时间是"+timechange);

三、文件输出流实现内容写入文档

1.创建一个文件输出流,并写入文件绝对地址。
格式如下:
FileOutputStream fos=new FileOutputStream(“path”,true);
path是文件绝对路径,true表示在文件后继续写入,不覆盖原文件。
2.利用键盘输入方式,与用户自行输入数据,类型为字符串形式,利用getBytes()转化为系统默认格式写入。
3.数据输入流采用write方式写入数据。

FileOutputStream fos=new FileOutputStream("D:\\java文档\\文件任务\\itcast\\a.txt",true);//创建文件输入流,地址为绝对路径,不覆盖原文件
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入想添加的内容:");
            String str=sc.next();//输入字符串
            byte[] byt=str.getBytes();//修改为系统默认格式的数组
            System.out.println("您输入的内容是"+str);
            System.out.println("=======================最终文档内容================================");
            fos.write(byt);//将输入内容写到a.txt文档
四、文件输入流实现文档内容在控制台显示

1.实现创建文件输入流对象,写入绝对地址,格式如下。
FileInputStream fis=new FileInputStream(path);
path:表示需要操作的绝对地址。
2.定义一个数组,用于缓冲作用,方便从txt文件中读取内容到显示台。当读取到该文档所有字节后会返回-1这个数,因此根据-1来判断是否读取完成。

   fos.write(byt);//将输入内容写到a.txt文档
            FileInputStream fis=new FileInputStream("D:\\java文档\\文件任务\\itcast\\a.txt");
            byte[] bytes=new byte[2048];//定义一个数组,用于缓冲作用,方便从txt文件中读取内容到显示台
            int len=0;//初始化一个变量
            while ((len=fis.read(bytes))!=-1){//当读取到最后一个数,会显示-1。
                System.out.println(new String(bytes,0,len));//从索引为0的地方读取到最终长度
            }

3.关闭文档。

fis.close();//关闭

4.最终结果图如下
结果图

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
/** * 一、BufferedReader类 public class BufferedReader extends Reader * 从字符输入取文本,缓冲各个字符,从而实现字符、数组和行的高效取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值足够大。 * 通常,Reader 所作的每个取请求都会导致对底层字符或字节进行相应的取请求。因此,建议用 BufferedReader包装所有其 read() * 操作可能开销很高的 Reader(如 FileReader和 InputStreamReader)。 * BufferedReader能够取文本行,通过向BufferedReader传递一个Reader对象 * ,来创建一个BufferedReader对象,之所以这样做是因为FileReader没有提供取文本行的功能. * * 二、InputStreamReader类 * * InputStreamReader 将字节转换为字符。是字节通向字符的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。 * * 构造方法: * * InputStreamReader isr = new InputStreamReader(InputStream * in);//构造一个默认编码集的InputStreamReader类 * * InputStreamReader isr = new InputStreamReader(InputStream in,String * charsetName);//构造一个指定编码集的InputStreamReader类。 * * 参数 in对象通过 InputStream in = System.in;获得。//取键盘上的数据。 * * 或者 InputStream in = new FileInputStream(String fileName);//文件中的数据。可以看出 * FileInputStream 为InputStream的子类。 * * 主要方法:int read();//取单个字符。 int read(char []cbuf);//将取到的字符存到数组中。返回取的字符数。 * * 三、FileWriter(少量文字) 和 BufferedWriter(大量文字)实现简单文件操作 * @author hulk */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一无所知的小白·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值