Java基础--常用IO流使用实例
读取文本文件:
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流使用实例的更多相关文章
- java基础之IO流(一)字节流
java基础之IO流(一)之字节流 IO流体系太大,涉及到的各种流对象,我觉得很有必要总结一下. 那什么是IO流,IO代表Input.Output,而流就是原始数据源与目标媒介的数据传输的一种抽象.典 ...
- java基础之IO流(二)之字符流
java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写 ...
- Java基础之IO流整理
Java基础之IO流 Java IO流使用装饰器设计模式,因此如果不能理清其中的关系的话很容易把各种流搞混,此文将简单的几个流进行梳理,后序遇见新的流会继续更新(本文下方还附有xmind文件链接) 抽 ...
- 【java基础】]IO流
IO流 概念: 流的概念源于unix中管道(pipe)的概念,在unix中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备,外部文件等 一个流,一定能够会有源和去向(目的地),他 ...
- java基础06 IO流
IO用于在设备间进行数据传输的操作. Java IO流类图结构: IO流分类 字节流: InputStream FileInputStream BufferedInputStream Output ...
- Java基础之IO流学习总结
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- java基础44 IO流技术(输出字节流/缓冲输出字节流)和异常处理
一.输出字节流 输出字节流的体系: -------| OutputStream:所有输出字节流的基类(抽象类) ----------| FileOutputStream:向文件输出数据的输出字节流(把 ...
- java基础之io流总结一:io流概述
IO流概念: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.io流是实现输入和输出的基础,可以方便的实现数据的输入和输出操作. IO流的分类: 根据处理数据类型的不同分为:字符流 ...
- Java中常用IO流之文件流的基本使用姿势
所谓的 IO 即 Input(输入)/Output(输出) ,当软件与外部资源(例如:网络,数据库,磁盘文件)交互的时候,就会用到 IO 操作.而在IO操作中,最常用的一种方式就是流,也被称为IO流. ...
随机推荐
- opencv源代码之中的一个:cvboost.cpp
我使用的是opencv2.4.9.安装后.我的cvboost..cpp文件的路径是........\opencv\sources\apps\haartraining\cvboost.cpp.研究源代码 ...
- 【Android】5.4 下拉框(Spinner)
分类:C#.Android.VS2015: 创建日期:2016-02-07 下拉列表框Spinner的用法和WinForms中ComboBox的用法非常相似,在Android应用中使用频次也相当高,因 ...
- 优雅得使用composer来安装各种PHP小工具
Composer对php世界的影响是巨大的,使用composer来代替PEAR一定是大势所趋.当小伙伴们都还沉浸在composer带来的便利的时候,有没有想过如何更好的使用composer呢,网上大部 ...
- canvas相关api
1.线性径变:ctx.createLinearGradient(): var grd=ctx.createLinearGradient(0,0,170,0); grd.addColorStop(0,' ...
- jsoup解析网页出现转义符问题
https://www.oschina.net/question/996055_136438 *************************************** 我要解析这个网页 htt ...
- Python实现二叉树及其4种遍历
Python & BinaryTree 1. BinaryTree (二叉树) 二叉树是有限个元素的集合,该集合或者为空.或者有一个称为根节点(root)的元素及两个互不相交的.分别被称为左子 ...
- dp之分组背包hdu1712
题意:有n门课程,和m天时间,完成a[i][j]得到的价值为第i行j列的数字,求最大价值...... 思路:分组背包,就是第n门课程,可以做一天,可以做两天,但它们相斥,你做了一天,就不能再做一天.. ...
- C++中冒号和双冒号的用法
1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{ unsigned char a:4; unsigned char c; } ; X ...
- C# Winform获取bin目录的路径
//获取到bin目录的下层路径:bin\Debug\ string aa = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBa ...
- Android—— TextView文字链接4中方法
转自:http://ghostfromheaven.iteye.com/blog/752181 Android 的实现TextView中文字链接的方式有很多种. 总结起来大概有4种: 1.当文字中出现 ...