//小人

复习六(File文件流)

流是指一连串流动的字符以先进先出的原则传送信息的通道

IO流是指输入输出流

在文件流中信息会被转成 二进制(1字节8位)或 字符(unicode编码2字节)

 

流的分类:

  1.按照流向分:

        输出流:OutputStream 和 Writer

        输入流:InputStream 和 Reacer

  2.按照数据处理方式分:

        字节流:byte

        字符流:char

  InputStream/OutputStream 属于字节流不支持汉字

  Reacer/Writer 属于字符流支持汉字

 

File的方法:

  File file=new File("文件路径")

  file.exists() :判断文件是否存在

  file.createNewFile() :创建文件

  file.getName() :获得文件名称

  file.getPath() :获得文件相对路径

  file.parent() :获得文件上一层路径

  file.length() :获得文件长度

  file.getAbsoutePath() :获得文件完整路径

  file.isPirectory() :判断是否是文件夹

  file.delete() :删除文件(成功返回true)

使用流读取文件内容:

复制代码
//1.创建流对象
FileInputStream ins=new FileInputStream(”文件地址“);

//2.将读到的内容放入byte数组中
byte[] bytes=ins.read();//读到的内容是ASII码 没有内容返回-1

//3.将byte数组转换为String
String s=new String(bytes);

//4.关闭流
ins.close()

字符流和字节流的使用方法相同只是将byte数组换成了char数组
复制代码

使用流写入内容:

//1.创建流
FileOutputStream ops=new FileOutPutStream("文件路径")//如果没有这个文件会自动创建一个
//2.创建写入的内容
String s="内容"//3.将String的内容转换为Byte数组写入文件
ops.write(s.getBytes());
//4.关闭流
ops.close()

使用流复制文件:

复制代码
//1.创建输入流和输出流
FileInputStream ins=new FileInputStream("原文件文件地址")

FileOutputStream ops=new FileOutputStream("新文件地址")

//2.定义一个存储信息的数组
 byte[]  bytes= new byte[文件长度];

//3.将读取到的内容放入数组
for(int i=0;i<butes.length;i++){
    bytes[i]=ins.read();
}

//4.写出
ops.write(bytes);
    
//5.关闭流
ops.close()
ins.close();

必须关闭流或加一个冲刷缓冲区outputStream.flush()不然内容会存放于缓冲区内写不出去报错
复制代码

 

posted @   H_Q  阅读(366)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示