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