Java详解IO流创建读取与写入操作

目录
  • 概念
  • io流对应的方法
  • 一、File方法(创建文件)
  • 二、FileInputStream(获取字节方法)输入流
  • 三、FileOutputStream(写入字节方法)输出流
  • 总结

概念

IO流可以初步的理解为数据间的传输,我们将一组数据入:1234567,将他们从hello文件中转入haha文件中,使用程序的方法进行转入的话则需要一个一个的传入,即为一个字节一个字节的传输,我们每次只能传入或读取一个字节,这就是io流的大致流程,io流对任何类型的文件都可以进行读取。如:文本文件,图片,歌曲mp3,视频等等的。

因为io流是一个字节一个字节的传入读取的所以我们需要用到byte单字节变量来获取长度。如果获取过多的内容则需要使用对应的数组。

io流对应的方法

所有io流方法中都需要写入相应的文件操作路径,且所有io流的方法都有一个共同的父类接口(Exception),所以我们在使用时都需要链接相对应的接口如:

public static void main(String[] args) throws Exception

一、File方法(创建文件)

声明方式:

File file1 = new File("D:\\java制作\\高级特性\\hehe.txt");

File方法主要用于创建文件,且该方法在使用的时候必须填写需要被创建的文件的具体路径,我们需要将对应的文件类型后缀也写出来,如果没有路径的话默认是文件夹的格式,创建文件的方法如下:

file.createNewFile();//创造相对应的文件
file.mkdirs();//创建文件夹

.createNewFile():当且仅当具有该名称的文件不存在时,将会在对应的路径中创建一个对应的文件

.mkdirs():当且仅当具有该名称的文件夹不存在时,将会在对应的路径中创建一个对应的文件夹

File方法既然有创建文件的方式那么自然也少不了删除于判断文件是否存在的方法。

Boolean decide = file.exists();//判断该文件是否存在
file.delete();//删除该文件

.exists():测试此路径表示的文件是否存在,如果存在则返回true否则返回false

.delete():删除由此抽象路径下的文件或文件夹

此外也有一些相对应的查看文件的方法如名称,路径,大小

System.out.println("文件名称:"+file.getName());
System.out.println("相对路径:"+file.getPath());
System.out.println("绝对路径:"+file.getAbsolutePath());
System.out.println("文件大小:"+file.length()+"字节");

.getName():根据英语词义就可得知该方法是获取相应文件的文件名。

.getPath():将相应文件的路径转换为字符串

.getAbsolutePath():将相应文件的绝对路径转换为字符串格式,与上述方法相对比更加精确。

.length():返回该文件的长度,即内部字节的长度。

二、FileInputStream(获取字节方法)输入流

声明方式:

FileInputStream fis = new FileInputStream("D:\\java制作\\高级特性\\hello.txt");

FileInputStream用于读取文件内字节内容的方法,且该方法在使用的时候必须填写需要被创建的文件的具体路径,我们平常对内部内容进行读写的方式如下:

byte[] data = new byte[fis.available()];//获取文件内容并以字节的方式存储如byte[]数组中
System.out.println((char)fis.read());//读出相对应的字节并以char的方式输出
//使用循环遍历出全部的字节
byte[] data = new byte[fis.available()];
for (int i = 0; i < data.length; i++) {
    System.out.print((char) fis.read());
}
System.out.println((char)fis.read(data,0,data.length));

.available():读取剩余的字节数,且必须用byte[]数组来存储对应的长度,因为byte是用来对字节的专门处理,该方法读取的是字节数,虽然输出时不会出错,但方法循环中时会出错

.read():读取该文件中的第一个字节,因为是字节的格式所以我们需要用char(单字符变量)进行转换,才能将其输出,注意每次只能读取一个,且不会读出同一个位置的字节,每读完一个就会少一个,如果读完后继续进行读取就会答应出一个黑色边框的空格。也可以通过需求去调用相应下标下的字节就如上述的最后一行代码。

fis.close();

.close():关闭此文件的输入流并释放与流相关联的任何系统资源,在我们引用FileInputStream流是就已经默认打开了输入流,当我们不使用它是应将其关闭,就好比我们进入了放假需要开门,当我们进入拿走需要的文件后离开房间要关门一样,否则它会一直开着占用电脑性能

三、FileOutputStream(写入字节方法)输出流

声明方式:

FileOutputStream fos = new FileOutputStream("D:\\java制作\\高级特性\\hehe.txt");

FileInputStream用于读取文件内字节内容的方法,且该方法在使用的时候必须填写需要被创建的文件的具体路径,我们平常对内部内容进行写入的方式如下:

String str = "天天向上";//将需要进行存储的内容存入变量
byte[] words = str.getBytes();//将字符串变为字节方式进行存储
fos.write(words);//最后通过字节的方式进行存储

.write():将指定的内容存入文件输出流再由输出流存入文件中,存入时我们需要将文件格式转换为电脑可读懂的方式,8进制字节,所以我们需要将存储的内容用byte强转为8进制字节

fos.close();//关闭输出流

.close():关闭此文件的输出流并释放与流相关联的任何系统资源,在我们引用

FileInputStream流是就已经默认打开了输入流,当我们不使用它是应将其关闭,就好比我们进入了放假需要开门,当我们进入拿走需要的文件后离开房间要关门一样,否则它会一直开着占用电脑性能

总结

他们三个有一个共同的父类接口Exception类,所以只要们调用其中一个方法时就必须链接Exception类,我们在进行文件输入与输出流传输时都会去打开对应的流,所以当我们对流的运用完毕后就需要.close()去关闭流。对于流基本操作方式不管是度还是写需要遵循:

1.打开一个流

2.读或写内容

3.关闭流这三个基本操作。

到此这篇关于Java详解IO流创建读取与写入操作的文章就介绍到这了,更多相关Java IO流内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java基于IO流实现登录和注册功能

    案例分析: 我们之前做过的登录注册案例是把用户信息存进集合里,要用IO流实现的话,就是要把用户信息存入文件中.登录注册两个功能的具体实现是在用户操作类中,所以我们只需要在用户操作类中把之前用户信息存进集合改为存进文件就可以了. 用到的类的详细分解: (1)用户类(User):用户名,密码,邮箱,电话号码等等各种注册时会用到的东西.我们在实现这个登录和注册案例的时候只需要用户名和密码就够了.这是一个标准Java描述类. package com.edu.domain; public class Us

  • Java超详细梳理IO流的使用方法上

    目录 Java语言的输入输出类库 1.流的概念 2.流的分类 3.流的作用 4.输入输出流类库 使用InputStream和OutputStream流类 1.基本输入输出流 1.InpitStream流类 2.OutputStream流类 2.输入输出流的应用 2.1文件输入输出流 2.2顺序输入流 2.3管道输入输出流 2.4过滤输入输出流 2.5标准输入输出 你要学会: 流的概念 处理字节流的类 处理字符流的类 Java标准输入输出 文件管理类 Java语言的输入输出类库 1.流的概念 流是

  • Java IO流之原理分类与节点流文件操作详解

    目录 IO流简介 IO流原理 流的分类 IO 流体系 节点流和处理流 节点流操作 IO流简介 I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于处理设备之间的数据传输.如读/写文件,网络通讯等. Java程序中,对于数据的输入/输出操作以"流(stream)" 的方式进行. java.io包下提供了各种"流"类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据. IO流原理 输入input:读取外部数据(磁盘.光盘等存储设备的数据

  • Java字节缓存流的构造方法之文件IO流

    目录 1.字节缓冲流 1.1字节缓冲流构造方法 1.2字节流复制视频 2.字符流 2.1为什么会出现字符流 2.2编码表 2.3字符串中的编码解码问题 2.4字符流中的编码解码问题 2.5字符流写数据的5种方式 2.6字符流读数据的2种方式 2.7字符流复制Java文件 2.8字符流复制Java文件改进版 2.9字符缓冲流 2.10字符缓冲流复制Java文件 2.11字符缓冲流特有功能 2.12字符缓冲流特有功能复制Java文件 2.13IO流小结 3练习案例 3.1集合到文件 3.2文件到集合

  • 一起来了解Java的File类和IO流

    目录 IO流: File类: 字节输出流: 字节输入流(从文件读取到控制台): 字符输出流: 字符输入流: 总结 IO流: IO流概述: IO:输入/输出(Input/Output) 流:是一种抽象概念,是对数据传输的总称.也就是说数据在设备间的传输称为流,流的本质是数据传输IO流就是用来处理设备间数据传输问题的, 常见的应用:文件复制;文件上传;文件下载等等,总而言之,涉及到传输的,都涉及到流. IO流体系图: 既然IO是涉及文件的操作,那么一定离不开文件操作的技术: File类: File

  • Java新手学习之IO流的简单使用

    目录 前言 IO流 1.基本概念 2.IO流分类 3.File 3.1File基本概念 3.2创建文本 3.3创建目录 3.4判断.读取和删除 4.字节流 4.1字节流的抽象基类 4.2字节流写数据 4.3字节流读数据 5.字符流 5.1由来 5.2字符流写数据 5.3字符流读数据 6.IO流小结 7.特殊操作流 7.1标准输入输出流 7.2字节打印流 7.3对象序列化流和对象反序列化流 7.4Properties集合 8.总结 前言 在我们平时使用图形化界面的时候,会发现来建立一个文件夹或者一

  • Java中IO流概述

    目录 1.InputStream 和 OutputStream 继承结构图: 2.Reader 和 Writer 继承结构图: 3. 内容 4.面试题 1.字节流和字符流的区别? 2.什么是 IO 流? 3.有哪些可用的 Filter 流? 4.Java 中有几种类型的流? 5.如何实现对象克隆? 6.什么是缓冲区?有什么作用? 总结 1.InputStream 和 OutputStream 继承结构图: 2.Reader 和 Writer 继承结构图: 3. 内容 3.1 Java 流概述文件

  • Java文件操作之IO流 File类的使用详解

    File类概述 File类能新建.删除.重命名文件和目录,但不能访问文件内容本身,如果需要访问文件内容本身,则需要使用后续的输入/输出流. 要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录. File对象可以作为参数传递给流的构造器. 常用构造器 ①public File(String pathname) 以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果是相对路径,则默认相

  • Java中文件的读写方法之IO流详解

    目录 1.File类 1.1File类概述和构造方法 1.2File类创建功能 1.3File类判断和获取功能 1.4File类删除功能 2.递归 2.1递归 2.2递归求阶乘 2.3递归遍历目录 3.IO流 3.1 IO流概述和分类 3.2字节流写数据 3.3字节流写数据的三种方式 3.4字节流写数据的两个小问题 3.5字节流写数据加异常处理 3.6字节流读数据(一次读一个字节数据) 3.7字节流复制文本文件 3.8字节流读数据(一次读一个字节数组数据) 3.9字节流复制图片 总结 1.Fil

  • java中的IO流

    目录 java中的IO流 1.普通字节流 2.字节缓冲流 3.转换流 4.常用的IO类FileReader和BufferedReader 5.总结 java中的IO流 前言: 在java中IO类很庞大,初学的时候觉得傻傻分不清楚.其实java流归根结底的原理是普通字节流,字节缓冲流,转换流.最基础的是普通字节流,即从硬盘读取字节写入到内存中,但在实际使用中又发现一些特殊的需求,所以java语言的设计者这引入了字节缓冲流和转换流.所有的java IO类对IO的处理都是基于这三种流中的一种或多种:在

随机推荐