Java知识点总结(JavaIO-字节流)

@(Java知识点总结)[Java, JavaIO]

[toc]

字节流

在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据时要使用输入流读取数据,而当程序需要将一些数据保存起来时,就要使用输出流。

字节流主要操作byte类型数据,以byte数组为准,主要操作类是 OutputStream 类和 InputStream 类。

输出写入数据,输入写出数据

字节输出流:OutputStream

是整个IO包字节输出流的最大父类,定义如下:

public abstract class OutputStream implements Closeable, Flushable

从定义可以发现:

OutputStream是一个抽象类,必须要通过子类实例化对象,才能使用。

可以使用子类FileOutputStream,向上转型后,操作一个文件。

字节输入流:InputStream

可以通过InputStream 从文件中把内容读取出来。

InputStream 类的定义如下:

public abstract class InputStream extends Object implements Closeable

同OutputStream 类一样,InputStream 本身也是一个抽象类,必须依靠其子类,如果从文件中读取,使用子类FileInputStream。

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

public class Demo03 {

// 将字符串转化为byte[]进行输出

public static void test1() throws IOException {

File file = new File("E:" + File.separator + "test.txt");

OutputStream fos = new FileOutputStream(file);

String str = "Hello world!";

byte[] b = str.getBytes(); // 只能使用byte数组,所以将字符串转为byte数组

fos.write(b);

fos.close();

}

// 在文末追加新的内容,且一个字节一个字节的输出

public static void test2() throws IOException {

File file = new File("E:" + File.separator + "test.txt");

OutputStream fos = new FileOutputStream(file, true);

String str = "\r\nHello world!";

byte[] b = str.getBytes(); // 只能使用byte数组,所以将字符串转为byte数组

for (int i = 0; i < b.length; i++) {

fos.write(b[i]);

}

fos.close();

}

// 读取数据

public static void test3() throws IOException {

File file = new File("E:" + File.separator + "test.txt");

InputStream fis = new FileInputStream(file);

// byte[] b = new byte[1024]; //定义一个数组用来存放读取的数据

byte[] b = new byte[(int) file.length()]; // 根据文件的数据量,开辟指定大小的 byte 数组

int len = fis.read(b); // 读取内容到数组中

fis.close();

System.out.println("读取数据的长度" + len);

// System.out.println("内容为:"+new String(b));

System.out.println("内容为:" + new String(b, 0, len)); // 把 byte 数组转为字符串输出

}

// 使用循环,一个字节一个字节读取数据

public static void test4() throws IOException {

File file = new File("E:" + File.separator + "test.txt");

InputStream fis = new FileInputStream(file);

byte[] b = new byte[(int) file.length()];

for (int i = 0; i < b.length; i++) {

b[i] = (byte) fis.read();

}

fis.close();

System.out.println("内容为:" + new String(b));

}

// 如果不知道要输入的内容有多大,则使用是否读到文件末尾的方式来读取文件

public static void test5() throws IOException {

File file = new File("E:" + File.separator + "test.txt");

InputStream fis = new FileInputStream(file);

int len = 0; //用于记录读取数据的个数

byte[] b = new byte[1024];

int temp = 0; //接收读取的每一个内容

while((temp = fis.read()) != -1){

b[len] = (byte) temp;

len ++;

}

fis.close();

System.out.println("内容为:" + new String(b,0,len));

}

public static void main(String[] args) {

try {

test1();

test2();

test5();

} catch (IOException e) {

e.printStackTrace();

}

}

}

java 输入输出流知识_Java知识点总结(JavaIO-字节流)相关推荐

  1. java输入输出流总结_Java输入输出流总结

    InputStream(字节输入流)  OutputStream(字节输出流)  Reader(字符输入流)  Writer(字符输出流)都是抽象类,所以不可以直接new:它们是各大输入输出流的父类. ...

  2. java输出流缓冲区内容清除,Java输入输出流与缓冲区的使用

    Java输入输出流与缓冲区的使用,有需要的朋友可以参考下. 一,Input/Output流: 将外设中的数据读取到内存中就是输入. 将内存中的数据写入到外设中就是出. I/O流就是用来处理设备间的 . ...

  3. java实验10流_实验9 Java输入输出流

    <实验9 Java输入输出流>由会员分享,可在线阅读,更多相关<实验9 Java输入输出流(14页珍藏版)>请在金锄头文库上搜索. 1.山 西 大 学 计 算 机 与 信 息 ...

  4. Java输入/输出流体系中常用的流分类

    java输入/输出流体系中常用的流分类 分类 字节输入流 字节输出流 字符输入流 字符输出流 抽象基类 InputStream OutputStream Reader Writer 访问文件 File ...

  5. JAVA输入输出流学习心得

    JAVA输入输出流 本文主要从以下几个方面总结JAVA输入输出流 1.什么是流?什么是输入输出流? 2.字节流与字符流 3.Scanner 什么是流? 举个例子,水龙头里流出的水流就是流.从水龙头里流 ...

  6. java输入流从指定字节读取,JAVA输入输出流-字节流篇

    当前位置:我的异常网» 综合 » JAVA输入输出流-字节流篇 JAVA输入输出流-字节流篇 www.myexceptions.net  网友分享于:2013-08-14  浏览:8次 JAVA输入输 ...

  7. Java基础知识每日总结(19)---Java输入输出流、文件、递归

    输入输出流.文件.递归 在变量.数组和对象中存储数据是暂时的,程序结束后它们则会丢失.为了能够永久地保存程序创建的数据,需要将其保存在磁盘文件中.这样以后就可以在其他程序中使用它们.Java的I/O技 ...

  8. java中的输入输出流概念_java输入输出--I/O流的概念和划分

    理解数据流 数据流(Stream)是一组有顺序的,有起点的,有终点的字节集合,是对输入和输出的总称和抽象. 一般地,数据流分为 输入流(InputStream)和输出流(OutputStream).输 ...

  9. 【java开发系列】—— java输入输出流

    前言 任何语言输入输出流都是很重要的部分,比如从一个文件读入内容,进行分析,或者输出到另一个文件等等,都需要文件流的操作.这里简单介绍下reader,wirter,inputstream,output ...

最新文章

  1. synchronized(class)、synchronized(this)与synchronized(object)的区别分析
  2. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
  3. CCNP-2 EIGRP试验2(BSCI)
  4. 【EventBus】发布-订阅模式 ( 使用代码实现发布-订阅模式 )
  5. C#之windows桌面软件第十一课:电脑ADC值显示(上位机)(多通道显示)
  6. Fiori extension hook和Hybris的template
  7. 中断按键c语言程序设计,单片机C语言代码:外部中断,按下中断按键LED不亮,LED1正常亮...
  8. python将list转为数组_python如何将list中的字符转为数字
  9. spark StandAlone模式下的作业提交流程
  10. webpack4.x实战六,处理图片
  11. Microsoft caffe cifar实例编译之model的生成
  12. Java中的random
  13. 图像处理之调整亮度与对比度
  14. android进入recovery模式,Android关机重启至recovery安卓进入Recovery模式模式
  15. 梯形图请用c语言,简单使用C语言写梯形图精简V2.0.pdf
  16. Android技术知识点:如何向 TextView 添加字体
  17. vue+环信客服前端对接
  18. 当页面放大后, 背景会消失
  19. 8种在JavaScript数组中查找指定元素的方法(用于开发中数据的处理)
  20. C++打印漂亮的二叉树

热门文章

  1. 能够生成动态图片的R模块:rCharts
  2. 388. 文件的最长绝对路径
  3. css3绘制环形_利用CSS简单地绘制一个操场
  4. ssm校园帮代服务系统的设计与实现答辩PPT模板
  5. 如何选择正确的控制系统?PLC和DCS各有不同
  6. Halcon PDF文档(hdevelop_users_guide)学习总结之一
  7. X64_Xcelera-CL_PX4采集卡测试记录
  8. java model1和model2_Java项目(4)——探究两种开发模型的异同-Model1与Model2
  9. 阿里云图数据库GDB公测,高度连接数据查询效率提升10倍
  10. 【笔记 】weex POST请求 body数据服务器获取不到