前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java IO流(最精美 最全)

Java IO流(最精美 最全)

作者头像
CaesarChang张旭
发布2021-01-26 11:48:50
3040
发布2021-01-26 11:48:50
举报
文章被收录于专栏:悟道

By CaesarChang 合作: root121toor@gmail.com

~关注我 带你看更多精品技术和面试必备

File

在这里面 目录叫文件夹

构造方法

常用方法: createNewFile 如果不存在才会创建,是创建的文件 mkdir 是创建的文件夹 mkdirs 可以创建多层 的文件夹 boolean exists() 测试此抽象路径名表示的文件或目录是否存在。 File getAbsoluteFile() 返回此抽象路径名的绝对路径名形式。 String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。 boolean delete() 删除此抽象路径名表示的文件或目录。//注意:这个删除,不走回收站,直接删除 File[] listFiles(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。 boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。 static File[] listRoots() 列出可用的文件系统根。 long length() 返回由此抽象路径名表示的文件的长度。字节数 String getPath() 将此抽象路径名转换为一个路径名字符串。 String getName() 返回由此抽象路径名表示的文件或目录的名称。 String getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。 File getParentFile() 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。 File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。//返回路径全名 推荐 File[] listFiles(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 File[] listFiles(FilenameFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

文件遍历:

文件过滤器:

public class MyFileter implements FileFilter { public boolean accept(File pathname) { if(pathname.getName().endsWith(".avi")||pathname.isDirectory)){ return true; } retrun false; } } 自定义类, 实现FIleFIleter接口 ,重写 accept方法 File[] files=file.listFiles(new MyFileter()); 或者 用它创建对象

IO 流

IO流的分类: 按照流的方向来分,可以分为:输入流和输出流. 按照流动的数据类型来分,可以分为:(其他的)字节流和字符流(文字) 字节流: (一切皆字节) - InputStream -OutputStream 字符流 -Reader -Writer

OutputStream 可以将数据写到文件中。 常用方法:

  1. void write​(int b): 向文件中写入一个字节。
  2. void write​(byte[] b): 向文件中写入一个字节数组。
  3. void write​(byte[] b, int beginindex, int len): 向文件中写入字节输入的一部分,。
  4. void close​(): 释放资源.
  5. void flush() 抛出缓存刷新

最常用的子类 FileOutputSteam 造函数: ①FileOutputStream(File file) ②FileOutputStream(String name) ③FileOutputStream(File file, boolean append) ④FileOutputStream(String name, boolean append) string的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。 FileInputStream FileInputStream(String name) FileInputStream(File file)

void close​(): 释放资源. 没了 返回-1 注意

肯能会出现读一半汉字的问题

FileWriter

leWriter(File file) 根据给定的 File 对象构造一个 FileWriter 对象。FileWriter(File file, boolean append) 根据给定的 File 对象构造一个 FileWriter 对象。

FileWriter(String fileName) 根据给定的文件名构造一个 FileWriter 对象。FileWriter(String fileName, boolean append) 根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。

  1. write(int args):写入数字,利用 ASCII 码表 或者 Unicode 表转化
  2. write(String str):写入字符串
  3. write(String str,int offset,int count):写入字符串的一部分
  4. write(char[] array):写入字符数组
  5. write(char[] array,int offset,int count):写入字符数组的一部分

FileReader FileReader(String fileName) FileReader(File file) public int read() throws IOException 读取单个字符。 读取的字符,如果已到达流的末尾,则返回 -1 public int read(char[] cbuf) throws IOException 读取一个字符数组 读取的字符,如果已到达流的末尾,则返回 -1

转换流:

字节流装饰为字符流 ,使用了装饰者设计模式

你在网上的资源都是字节流, 必须转换为字符流

输入流的转换:

InputStreamReader isr=new INputStreamReader( 字节流 , "编码格式")

输出流的转换:

OutputStreamWriter

字符打印流:

输出

也是输出:

也可以用于转换字符流

PrintWriter pw =new PrintWriter(字符流);

缓存读取流:

BufferedReader br =new Bufferedreader(字符流); br.readLine(); //可以一次读取一行缓存字符读取流 读到结尾返回null

Properties

暂时用 . properties文件 key=value

序列化与反序列化:(以后会淘汰)

序列化:把对象转换为字节序列的过程称为对象的序列化。 反序列化:把字节序列恢复为对象的过程称为对象的反序列化。

什么时候用? 当你想把的内存中的对象状态保存到一个文件中或者数据库中

上面也可看出来 序列化啥的 一定是 类implements Serializable 接口 在主类里面一定 用 ObjectOutputStream 或者 ObjectInputStream

try with resources

把他放到try()里面 自动会关闭 ,因为 创建对象的类继承自closeable接口,而closeable实现了AutoCLoseable接口 ,自动会关闭 执行 .close()

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • By CaesarChang 合作: root121toor@gmail.com
  • ~关注我 带你看更多精品技术和面试必备
  • File
  • 在这里面 目录叫文件夹
    • 文件遍历:
      • 文件过滤器:
        • IO 流
          • 转换流:
            • 输入流的转换:
              • InputStreamReader isr=new INputStreamReader( 字节流 , "编码格式")
                • 输出流的转换:
                  • OutputStreamWriter
                    • 字符打印流:
                      • 缓存读取流:
                        • Properties
                          • 序列化与反序列化:(以后会淘汰)
                            • try with resources
                            相关产品与服务
                            文件存储
                            文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档