ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javaSE-FileInputStream

2022-04-23 18:03:09  阅读:203  来源: 互联网

标签:fis java 字节 io new FileInputStream javaSE


一、IO输入输出:

输入:硬盘到内存(Read / Input / InputStream)

输出:内存到硬盘(Write / Output / OutputStream)

 

 二、IO流分类四大家族:

  • 都是抽象类。(abstract  class)
  • 在java中只要“类名” 以Stream结尾的都是字节流。以“Reader / Writer”结尾的都是字符流。
  • 所有的 流 都实现了:java.io.Closeable接口,都是可关闭的,都有close()方法。流是内存和硬盘之间的通道,用完之后一定要关闭,不然会耗费很多资源
  • 所有的输出流都实现了:java.io.Flushable接口,都是可刷新的,都有flush()方法。
  • 输出流在最后,一定要flush()刷新一下,将通道/管道当中剩余未输出的数据输出完(清空管道数据!) 注意:如果没有flush()可能会导致丢失数据。
  • 字节输入流: java.io.InputStream 
  • 字节输出流: java.io.OutputStream
  • 字符输入流: java.io.Reader       
  • 字符输出流: java.io.Writer       

 三、FileInputStream 文件字节流

 1、文件字节输入流,万能的,任何类型的文件都可以采用这个流来读。字节的方式,完成输入read的操作,(硬盘---> 内存)

2、读到文件的末尾,再读的时候读取不到任何数据,会返回-1.

3、IDEA默认的当前路径是:工程Project的根 src 就是IDEA的默认当前路径。

4、 文件路径:D:\course\JavaProjects\02-JavaSE\temp (IDEA会自动把\编程\\,因为java中\表示转义)

  • FileInputStream fis = new FileInputStream("D:\\course\\JavaProjects\\02-JavaSE\\temp");
  • 写成这个:反斜杠 /  这样的路径也可以。
import java.io.FileNotFoundException;
import java.io.IOException;

/*
读取文件:tempfile3 文件里面的内容
文件内容:abcdef
 */
public class FileInputStreamTest04 {
    public static void main(String[] args) {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("chapter23/src/tempfile3");
// 准备一个byte数组 byte[] bytes = new byte[4];
// while 循环读取数据,下标从零开始读取,读到-1,表示没有数据
// 将字节数组全部转换成字符串
            //System.out.println(new String(bytes,0,readCount));
            // 读取了多少个字节,转换多少个字节 int readCount = 0; while((readCount = fis.read(bytes)) != -1) { System.out.print(new String(bytes, 0, readCount)); }
} catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } }

标签:fis,java,字节,io,new,FileInputStream,javaSE
来源: https://www.cnblogs.com/lwt280887072/p/16183089.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有