当前位置: 首页 > news >正文

Java中File类以及初步认识流

1、File类操作文件或目录属性

(1)在Java程序中通过使用java.io包提供的一些接口和类,对计算机中的文件进行基本的操作,包括对文件和目录属性的操作、对文件读写的操作;

(2)File对象既可以表示文件,也可以表示目录,在程序中一个File对象可以代表一个文件或目录;

(3)利用File类可以来对文件或目录进行基本操作。它可以查出与文件相关的信息,如名称、最后修改日期、文件大小等;

(4)File类的常用构造方法如下所示:

        1)File (String pathname):用指定的文件路径构造文件;

        2)File(String dir,String subpath):在指定的目录下创建指定文件名的文件,dir参数指定目录路径,subpath参数指定文件名;

        3)File(File parent,String subpath):根据一个文件对象和一个字文件构造文件对象,parent参数指定目录文件,subpath参数指定文件名。

(5)File类的常用方法如下所示:

        1)boolean exists():测试文件是否存在;

        2)String getAbsolutePath():返回此对象表示的文件的绝对路径;

        3)String getName():返回此对象表示的文件的名称;

        4)String getParent():返回此File对象的路径的上一级,如果路径名没有上一级,则返回null;

        5)boolean delete():删除此对象指定的文件;

        6)boolean createNewFile():创建空文件,不创建文件夹;

        7)boolean isDirectory():测试此File对象表示的是否是目录;

        8)boolean mkdir():创建一个目录,它的路径名由当前File由当前File对象指定;

        9)boolean mkdirs():创建包括父目录的目录

关于使用File类的相关代码:

import java.io.File;public class FileTest {public static void main(String[] args) {File file1 = new File("F:\\a.txt");File file2 = new File("F:/demo");// boolean exists()测试此抽象路径名表示的文件或目录是否存在。如果存在返回true,如果不存在返回falseboolean result1 =file1.exists();System.out.println("file1对象指向的文件存在:"+result1);System.out.println("file2对象指向的目录存在:"+file2.exists());//        boolean isDirectory()测试此抽象路径名表示的文件是否是一个目录。
//        boolean isFile()测试此抽象路径名表示的文件是否是一个标准文件。System.out.println("file1对象指向的是一个文件:"+file1.isFile());//trueSystem.out.println("file1对象指向的是一个目录:"+file1.isDirectory());//falseSystem.out.println("file2对象指向的是一个文件:"+file2.isFile());//falseSystem.out.println("file2对象指向的是一个目录:"+file2.isDirectory());//true// String getName() 返回由此抽象路径名表示的文件或目录的名称。System.out.println("file1对象指向的文件名称:"+file1.getName());//a.txtSystem.out.println("file2对象指向的目录名称:"+file2.getName());//demo//        boolean delete()删除此抽象路径名表示的文件或目录。删除成功返回true,删除失败,返回falseSystem.out.println("file1对象指向的文件删除成功:"+file1.delete());System.out.println("file2对象指向的目录删除成功:"+file2.delete());}

2、认识Java的流

(1)读文件是指把文件中的数据读取到内存中;

(2)写文件是把内存中的数据写到文件中;

(3)Java程序通过来读写文件;

(4)流是指一连串流程的字符,是以先进先出的方式发送和接收数据的通道

(5)流分为输入流和输出流,输入/输出流是相对于计算机内存来说的,如果数据输入到内存,则为输入流,如果从内存中输出则为输出流;

(6)Java的输出流主要有OutputStream类和Writer类作为基类,输入流主要由InputStream类和Reader类作为基类;

(7)在java.io包中,封装了许多输入/输出流的API,在程序中,这些输入/输出流类的对象称为流对象;

(8)可以通过流对象将内存中的数据以流的方式写入文件,也可以通过流对象将文件中的数据以流的方式读取到内存;

(9)构造流对象时往往会和数据源(如文件)联系起来。数据源分为源数据源和目标数据源。输入流关联的是源数据源;输出流关联的是目标数据源;

(10)输入/输出流又分为字节流和字符流两种形式:

        1)字节流是8位通用字节流,其基本单位是字节。字节流的基类是InputStream类和OutputStream类,它们是抽象类。

        2)字符流是16位Unicode字符流,基本单位是Unicode字符。字符流最适合用来处理字符串和文本,因为它们支持国际上大多数的字符集和语言。字符流的基类是Reader类和Writer类,它们是抽象类。

(11)一个被访问的流基本特征都是通过实现InputStream类、OutputStream类、Reader类和Writer类这4个抽象类的方法建立的。

(12)InputStream类常用方法如下:

        1)int read():从输入流中读取下一个字节数据;

        2)int read(byte[ ] b):从输入流中读取数据,并将数据存储在缓冲区数组b中,返回实际读取的字节数;

        3)int read(byte[] b,int off,int len):从输入流中读取最多len长度的字节,保存到字节数组中,保存的位置从off开始;

        4)void close():关闭输入流。

InputStream类的常用子类有FileInputStream,用于从文件中读取数据。

(13)OutputStream类常用方法如下:

        1)void write():将指定的字节数据写入此输入流中;

        2)void write(byte[ ] buf):将数组buf中的所有字节写入此输出流中;

       3)void write(byte[ ] b,int off,int len):将字节数组中从偏移量off开始的长度为len的字节数据输出到输出流中;

       4)void close():关闭输出流;

OutputStream类的常用子类有FileOutputStream,用于向文件写数据。

(14)Reader类常用方法如下:

        1)int read(byte[ ] c):从输入流中最多读取c.length个字符,保存到字符数组c中,返回实际读取的字符数;

        2)int read(char[ ] c,int off,int len):从输入流中读取最多len个字符,保存到字符数组c中,保存的位置从off开始,返回实际读取的字符数;

        3)void close():关闭流。

Reader类的常用子类有BufferedReader,接受Reader对象作为参数,并对其添加字符缓冲器。

(15)Writer类常用方法如下:

        1)void write(String str):将str字符串里包含的字符输出到指定的输出流中

        2)void write(String str,int  off,int len):将str字符串里从off位置开始,长度为len的多个字符输出到输出流中;

        3)void close():关闭输出流;

        4)void flush():刷新输出流。

Writer类的常用子类有BufferedWrite,用于将数据缓冲到字符输出流。

(16)在操作上字节流和字符流还有一个区别,字符流在操作时使用了缓冲区(内部存储器),而字节流在操作时直接操作文件,不会使用缓冲区;

(17)流中的方法在出现错误时都会抛出IOException异常。

关于InputStream的相关代码:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;public class FileInputStreamTest {public static void main(String[] args) throws IOException {//创建一个File类对象File file = new File("F:/test.txt");//创建FileInputStream类对象FileInputStream fileInputStream = new FileInputStream(file);//通过fileInputStream对象调用方法从file对象指向的文件中读取数据
//        int read(byte[] b)从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。//创建一个byte类型的数据byte[] bytes = new byte[1024];int num =fileInputStream.read(bytes);System.out.println("从流中读取的字节数:"+num);//遍历bytes数组,输出数组中存储的数据for (int i =0;i<num;i++){System.out.print((char)bytes[i]);}fileInputStream.close();}
}

关于OutputStream的相关代码:

import java.io.FileOutputStream;
import java.io.IOException;public class FileOutputStreamTest {public static void main(String[] args) throws IOException {FileOutputStream fileOutputStream = new FileOutputStream("F:/test.txt",true);//通过fileOutputStream对象调用方法向F:/test.txt文件中写入数据//将数据字符串“asdfghjkl”写入文件中String str = "asdfghjkl";//将字符串转换为byte类型的数组byte[] bytes =str.getBytes();fileOutputStream.write(bytes);System.out.println("数据写入完毕");//关闭流fileOutputStream.close();}
}

http://www.lryc.cn/news/44551.html

相关文章:

  • 【C语言】文件操作详细讲解
  • 爱奇艺万能联播使用教程
  • 真题讲解-软件设计(三十七)
  • Android 上的协程(第一部分):了解背景
  • 【H3C】VRRP2 及Vrrp3基本原理 华为同用
  • 【数据库】SQL语法
  • JavaEE简单示例——文件的上传和下载
  • 【C语言督学训练营 第五天】数组字符串相关知识
  • GPT-4 免费体验方法
  • 中断-屏蔽位
  • 【洛谷P1636】 Einstein学画画
  • 户外LED显示屏钢结构制作原则
  • 【内网穿透】使用Haproxy反向代理搭建企业私有云:神卓互联教程
  • spring boot项目:实现与数据库的连接
  • 【gitlab部署】centos8安装gitlab(搭建属于自己的代码服务器)
  • 2021年全国职业院校技能大赛(中职组)网络安全竞赛第三套试题A模块解析(超级详细)
  • Hbase异步复制和同步复制解析
  • TIKTOK海外直播公会如何申
  • 6.springcloud微服务架构搭建 之 《springboot集成Gateway》
  • [N1CTF 2018]eating_cms_
  • 《Spring系列》第13章 Aop切面(二) 代理创建
  • 算法-贪心
  • 【数据结构与算法】树(Tree)【详解】
  • OSPF------LSA 详解
  • js加解密入门
  • vue+Echarts导入自定义地图
  • dp-组合总和 Ⅳ
  • 46-堆
  • Mysql高可用高性能存储应用系列3 - mysqld_multi配置主从集群
  • 天干地支(Java)