java传输路径数据流,Java基础第二十六天总结——IO流

目录:

一、File类的使用

二、IO流原理及流的分类

三、节点流(或文件流)

四、缓冲流

五、转换流

六、标准输入、输出流

七、打印流

八、数据流

九、对象流

十、随机存取文件流

十一、NIO.2中Path、Paths、File类的使用

/*---------------------分割线-----------------------*/

一、File类的使用

File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。

想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。

File对象可以作为参数传递给流的构造器

public File(String pathname)

以pathname为路径创建File对象,可以是绝对路径或者相对路径

绝对路径:是一个固定的路径,从盘符开始

相对路径:是相对于某个位置开始

public File(String parent,String child)

以parent为父路径,child为子路径创建File对象。

public File(File parent,String child)

根据一个父File对象和子文件路径创建File对象

路径分隔符:

windows和DOS系统默认使用“\”来表示

UNIX和URL使用“/”来表示

常用方法:

File类的获取功能

public String getAbsolutePath():获取绝对路径

public String getPath() :获取路径

public String getName() :获取名称

public String getParent():获取上层文件目录路径。若无,返回null

public long length() :获取文件长度(即:字节数)。不能获取目录的长度。

public long lastModified() :获取最后一次的修改时间,毫秒值

public String[] list() :获取指定目录下的所有文件或者文件目录的名称数组

public File[] listFiles() :获取指定目录下的所有文件或者文件目录的File数组

File类的重命名功能

public boolean renameTo(File dest):把文件重命名为指定的文件路径

File类的判断功能

public boolean isDirectory():判断是否是文件目录

public boolean isFile() :判断是否是文件

public boolean exists() :判断是否存在

public boolean canRead() :判断是否可读

public boolean canWrite() :判断是否可写

public boolean isHidden() :判断是否隐藏

File类的创建功能

public boolean createNewFile() :创建文件。若文件存在,则不创建,返回false

public boolean mkdir() :创建文件目录。如果此文件目录存在,就不创建了。

如果此文件目录的上层目录不存在,也不创建。

public boolean mkdirs() :创建文件目录。如果上层文件目录不存在,一并创建

注意事项:如果你创建文件或者文件目录没有写盘符路径,那么,默认在项目

路径下。

File类的删除功能

public boolean delete():删除文件或者文件夹

删除注意事项:

Java中的删除不走回收站。

要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录

二、IO流原理及流的分类

617f2443e9c0578946c87e41074546c6.png

流的分类

按操作数据单位不同分为:字节流(8 bit),字符流(16 bit)

按数据流的流向不同分为:输入流,输出流

按流的角色的不同分为:节点流,处理流

98e1cf84e211cd255d3a65fa121ea6f0.png

f51f0f5c4005d497dd53c04a3ccf044b.png

InputStream 和 Reader 是所有输入流的基类。

OutputStream & Writer

OutputStream 和 Writer 也非常相似:

void write(int b/int c);

void write(byte[] b/char[] cbuf);

void write(byte[] b/char[] buff, int off, int len);

void flush();

void close(); 需要先刷新,再关闭此流

三、节点流(或文件流)

在写入一个文件时,如果使用构造器FileOutputStream(file),则目录下有同名文

件将被覆盖。

如果使用构造器FileOutputStream(file,true),则目录下的同名文件不会被覆盖,

在文件内容末尾追加内容。

在读取文件时,必须保证该文件已存在,否则报异常

四、缓冲流

缓冲流要“套接”在相应的节点流之上,根据数据操作单位可以把缓冲流分为:

BufferedInputStream 和 BufferedOutputStream

BufferedReader 和 BufferedWriter

56080a4943280adeb16c3c539c56ea72.png

五、转换流

Java API提供了两个转换流:

InputStreamReader:将InputStream转换为Reader

OutputStreamWriter:将Writer转换为OutputStream

942f1948e4aaaab5666456a1e88cfdcf.png

六、标准输入、输出流

System.in和System.out分别代表了系统标准的输入和输出设备

七、打印流

实现将基本数据类型的数据格式转化为字符串输出

打印流:PrintStream和PrintWriter

八、数据流

为了方便地操作Java语言的基本数据类型和String的数据,可以使用数据流。

数据流有两个类:(用于读取和写出基本数据类型、String类的数据)

DataInputStream 和 DataOutputStream

分别“套接”在 InputStream 和 OutputStream 子类的流上

DataInputStream中的方法

boolean readBoolean()

byte readByte()

char readChar()

float readFloat()

double readDouble()

short readShort()

long readLong()

int readInt()

String readUTF() void readFully(byte[] b)

DataOutputStream中的方法

将上述的方法的read改为相应的write即可。

九、对象流

ObjectInputStream和OjbectOutputSteam

用于存储和读取基本数据类型数据或对象的处理流。它的强大之处就是可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。

ObjectOutputStream和ObjectInputStream不能序列化static和transient修饰的成员变量

十、随机存取文件流

long getFilePointer():获取文件记录指针的当前位置

void seek(long pos):将文件记录指针定位到 pos 位置

流的基本应用小结:

流是用来处理数据的。

处理数据时,一定要先明确数据源,与数据目的地

数据源可以是文件,可以是键盘。

数据目的地可以是文件、显示器或者其他设备。

而流只是在帮助数据进行传输,并对传输的数据进行处理,比如过滤处理、转换处理等

十一、NIO.2中Path、Paths、Files类的使用

NIO将以更加高效的方式进行文件的读写操作。

Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。

Paths 类提供的静态 get() 方法用来获取 Path 对象:

static Path get(String first, String … more) : 用于将多个字符串串连成路径

static Path get(URI uri): 返回指定uri对应的Path路径

标签:文件,第二十六,Java,IO,boolean,File,文件目录,public,String

来源: https://www.cnblogs.com/zhoutie170821/p/12063933.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值