读取文本文件:

 private static void ioDemo1() {
try {
FileReader fileReader = new FileReader("C:\\Users\\yan\\Desktop\\编码规范 (2).txt");
int aa;
aa = fileReader.read();
while (aa!=-1) {//转换为char类型,否则是一堆数字
System.out.print((char)aa);
aa = fileReader.read();
}
fileReader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

复制二进制文件:

 private static void ioDemo2() {
try {
FileInputStream fr = new FileInputStream("D:/test.xlsx");//不能使用FileReader(字符流)
FileOutputStream fw = new FileOutputStream("D:/test1.xlsx");
int read = fr.read();
while (read!=-1) {
fw.write(read);
read=fr.read();
}
fw.flush();//杯子中没有饮料不代表饮料已喝完,此方法就是清空吸管中的饮料
fw.close();
fr.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

使用缓冲流复制二进制文件:

 private static void ioDemo3() {
try {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:/test.xlsx"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\yan\\Desktop\\test.xlsx"));
byte[] buffer = new byte[2048];
int read = bis.read(buffer);
while(read!=-1)
{
bos.write(buffer, 0, read);
read = bis.read(buffer);
}
bos.flush();
bos.close();
bis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

数据流传递数据:

     private static void ioDemo4() {
try { ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
long src = 1234454544;
dos.writeLong(src); byte[] bytes = baos.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
DataInputStream dis = new DataInputStream(bais);
long recieve;
recieve = dis.readLong(); System.out.println("recieve:" + recieve); } catch (IOException e) {
e.printStackTrace();
}
}

PrintStream:

参考

ObjectStream:

     private static void ioDemo5() {
ObjectOutputStream oos = null;
ObjectInputStream ois = null;
Student s = new Student("悟空", 007, 95.5f);
Student s1 = null; try {
FileOutputStream fos = new FileOutputStream("C:\\Users\\yan\\Desktop/ccc.txt");
oos = new ObjectOutputStream(fos);
oos.writeObject(s); ois = new ObjectInputStream(new FileInputStream("C:\\Users\\yan\\Desktop/ccc.txt"));
s1 = (Student) ois.readObject(); System.out.println("姓名:" + s1.getName());
System.out.println("学号:" + s1.getId());
System.out.println("成绩:" + s1.getScore());
fos.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
oos.close();
ois.close();
System.exit(-1);
} catch (Exception e) {
System.exit(-1);
}
}
}
//实现Serializable的作用是可以将对象保存在文件中用于传输
class Student implements Serializable {
private static final long serialVersionUID = -111977186014986048L;
private String name;
private int id;
private transient float score;//transient意思是转瞬即逝,起的作用是反序列化 public Student(String name, int id, float score) {
super();
this.name = name;
this.id = id;
this.score = score;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public float getScore() {
return score;
} public void setScore(float score) {
this.score = score;
}
}

Java基础--常用IO流使用实例的更多相关文章

  1. java基础之IO流(一)字节流

    java基础之IO流(一)之字节流 IO流体系太大,涉及到的各种流对象,我觉得很有必要总结一下. 那什么是IO流,IO代表Input.Output,而流就是原始数据源与目标媒介的数据传输的一种抽象.典 ...

  2. java基础之IO流(二)之字符流

    java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写 ...

  3. Java基础之IO流整理

    Java基础之IO流 Java IO流使用装饰器设计模式,因此如果不能理清其中的关系的话很容易把各种流搞混,此文将简单的几个流进行梳理,后序遇见新的流会继续更新(本文下方还附有xmind文件链接) 抽 ...

  4. 【java基础】]IO流

    IO流 概念: 流的概念源于unix中管道(pipe)的概念,在unix中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备,外部文件等 一个流,一定能够会有源和去向(目的地),他 ...

  5. java基础06 IO流

    IO用于在设备间进行数据传输的操作. Java IO流类图结构:   IO流分类 字节流: InputStream FileInputStream BufferedInputStream Output ...

  6. Java基础之IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  7. java基础44 IO流技术(输出字节流/缓冲输出字节流)和异常处理

    一.输出字节流 输出字节流的体系: -------| OutputStream:所有输出字节流的基类(抽象类) ----------| FileOutputStream:向文件输出数据的输出字节流(把 ...

  8. java基础之io流总结一:io流概述

    IO流概念: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.io流是实现输入和输出的基础,可以方便的实现数据的输入和输出操作. IO流的分类: 根据处理数据类型的不同分为:字符流 ...

  9. Java中常用IO流之文件流的基本使用姿势

    所谓的 IO 即 Input(输入)/Output(输出) ,当软件与外部资源(例如:网络,数据库,磁盘文件)交互的时候,就会用到 IO 操作.而在IO操作中,最常用的一种方式就是流,也被称为IO流. ...

随机推荐

  1. JS实现随机数生成算法示例代码

    JS实现随机数生成算法的方法有很多,本文为大家介绍一个比较不错的方法. 1, var MT = []; var index = 0; function initialize_generator(see ...

  2. 基于FPGA的线阵CCD实时图像采集系统

    基于FPGA的线阵CCD实时图像采集系统 2015年微型机与应用第13期 作者:章金敏,张 菁,陈梦苇2016/2/8 20:52:00 关键词: 实时采集 电荷耦合器件 现场可编程逻辑器件 信号处理 ...

  3. [na]vrrp两用(网关冗余+服务器热备)

    VRRP的两种用途 早上想了想vrrp的使用,1,网关冗余 2,服务器热备 思想稍微有点不一样.主要在于监控口 服务器的话有心跳线,用户同步一些配置和迁移一些服务.达到热备的目的.:牵涉到四个优先级: ...

  4. [转载] C++的那些事:你真的了解引用吗

    我转载了roony的一篇文章 C++的那些事:你真的了解引用吗 以备以后可以查到. 一.引用的本质是什么 说到引用,一般C++的教材中都是这么定义的: 1.引用就是一个对象的别名. 2.引用不是值不占 ...

  5. haproxy 配置mysql的代理

    应用场境,是如果mysql服务器没有外网的,需要一个有外网的代理服务器做代理,这时就可以用haproxy做个四层的代理: listen mysql bind mode tcp balance roun ...

  6. express 设置node_env的环境变量

    设置process.env.NODE_ENV的环境变量可以用以下2种方式: //在你的app.js文件中设置 process.env.NODE_ENV = 'development'; //在pack ...

  7. ie浏览器不兼容css媒体查询的解决办法

    有些页面布局复杂,在不同分辨率下表现需要一致,这时需要用媒体查询根据不同分辨率进行百分比定位(不能用像素定位),如: @media screen and (max-width: 1600px) { . ...

  8. C#修改GIF大小同时保持GIF仍然可动和背景透明

    /// <summary> /// 设置GIF大小 /// </summary> /// <param name="path">图片路径< ...

  9. AC Again hdoj 1582 搜索

    AC Again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  10. USB设备驱动程序学习笔记(二)

    一.usbmouse_as_key.c /* * drivers\hid\usbhid\usbmouse.c */ #include <linux/kernel.h>#include &l ...