I/O流

本文详细介绍了Java中的File类,包括构造方法、获取文件属性的方法、判断文件状态的方法以及文件的创建和删除。同时,讨论了I/O流的基本概念,如字节流和字符流,以及FileOutputStream和FileInputStream的使用。内容涵盖流的分类和不同类型的流在读写数据中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是流?流就是内存与存储设备之间传输数据的通道。他是用来读写数据的,所有的数据是存储在文件中。而文件则在硬盘中占了一块空间,我们读写数据的时候就会以流为载体进行读写和传输。

File类

输入和输出,至始至终都离不开文件。
java.io.File类是专门造作文件的类,只能对文件自身进行操作,不能对文件的内容进行造作。(也就是说file不具有流的功能,不能读写,不能输入输出)它是文件路径名的抽象表示,主要进行文件和目录的创建,查找和删除等操作。

路径的写法

在java中路径一般用"/"。
windows中的路径一般用""(在java中,必须用\才能表示\,其中一个\是转译作用)。
linux、unix中的路径一般用"/"

所以建议用“/”,因为java是跨平台的。Linux和Unix下都是用“/”

构造方法

常用的三种
1.public File(String pathname):将给定的路径名字符串转换为抽象路径名来创建新的File实例。
2.public File(String parent,String child):从父路径名字符串和子路径名字符串创建新的File实例。
3.public File(File parent,String child):从父抽象路径和子路径名字符串创建新的File实例。

//文件路径名
    String path ="D:/123.txt";
    File file1 =new File(path);


    String path2 ="D:/1/2.text";
    File file2=new File(path2);//D:/1/2.text

    //通过父路径和子路径字符串
    String parent="F:/AAA";
    String child="BBB.txt";
    File file3=new File(parent,child);//相当于F:/AAA/BBB.txt

    //通过父类File对象和子路径字符串
    File parentDir =new File("F:/CCC");
    String child1 ="BBB.txt";
    File file4 =new File(parentDir,child1);//F:/CCC/BBB.txt

常用的方法

获取功能

1.public String getAbsolutePath():返回此File的绝对路径名字符。
2.public String getPath:将此File转换为路径名字符串。
3.public String getName():返回由此File表示的文件或目录的名称。
4.public long length():返回由此File表示的文件的长度。

String path ="D:/123.txt";
    File file1 =new File(path);
    System.out.println("文件的绝对路径:"+file1.getAbsoluteFile());
    System.out.println("文件构造路径:"+file1.getPath());
    System.out.println("文件长度:"+file1.length());
    System.out.println("文件名称:"+file1.getName());


    File f2 =new File("E:/mmm");
    System.out.println("目录绝对路径:"+f2.getAbsolutePath());
    System.out.println("目录的构造路径:"+f2.getPath());
    System.out.println("目录名称:"+f2.getName());
    System.out.println("目录长度:"+f2.length());

上边提到了绝对路径和相对路径

相对路径:绝对路径即是绝对的路径,固定死的路径,则是以根目录为起始点某一文件的路径,我们平时在电脑上的文件在硬盘上真正存在的路径就是绝对路径,是完整的路径,盘符开头,F:/aaa.txt.
绝对路径:是从当前路径开始的路径,一个简化的路径,不以盘符开头,/aaa.txt/

判断功能的方法

public boolean exists():文件或目录是否真实存在
public boolean isDirectory() :是否为目录。
public boolean isFile() :是否为文件。

创建删除的方法

ublic boolean createNewFile() :文件不存在,创建一个新的空文件并返回true,文件存在,不创建文件并返回false。
public boolean delete() :删除由此File表示的文件或目录。
public boolean mkdir() :创建由此File表示的目录。
public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。

IO的分类

数据流向分:
输入流 把数据读取到内存中
输出流 把数据从内存写到其他设备中

根据数据类型分:
字节流:以字节为单位,读写数据。
字符流:以字符为单位,读写数据。

字节输入流 InputStream 往里读
字节输出流 OutputStream 往外写
字符输入流 Reader
字符输出流 Writer

由这四个类的子类名称基本都是以其父类名作为子类名的后缀。
如:InputStream的子类FileInputStream。
如:Reader的子类FileReader。

OutputStream有很多子类,我们从最简单的一个子类FileOutputStream开始。看名字就知道是文件输出流,用于将数据写出到文件。

FileOutputStream构造方法

两种
**1、 public FileOutputStream(File file):**根据File对象为参数创建对象。
2、 public FileOutputStream(String name): 根据名称字符串为参数创建对象。

一般使用第二种

FileOutputStream写出字节数据

使用FileOutputStream写出字节数据主要通过Write方法,而write方法分如下三种
void write(int b)
void write(byte[] b)
void write(byte[] b,int off,int len) //从off索引开始,len个字节

FileInputStream

int read()
int read(bety[] b)
int read(bety[] b)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值