编程语言
首页 > 编程语言> > Java基础第二十六天总结——IO流

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流原理及流的分类

 

 

流的分类 按操作数据单位不同分为:字节流(8 bit),字符流(16 bit) 按数据流的流向不同分为:输入流,输出流 按流的角色的不同分为:节点流,处理流

 

 

 

 

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

 

 

五、转换流

Java API提供了两个转换流:  InputStreamReader:将InputStream转换为Reader  OutputStreamWriter:将Writer转换为OutputStream  

 

 

六、标准输入、输出流

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