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流. ...
随机推荐
- selenium+phantomJS爬虫,适用于登陆限制强,点触验证码等一些场景
selenium是非常出名的自己主动化測试工具,多数场景是測试project师用来做自己主动化測试,可是相同selenium能够作为基本上模拟浏览器的工具,去爬取一些基于http request不能或 ...
- Javascript玩转继承(二)
对象伪装来实现继承.在这里先来说一下这种方式的优缺点 这种方式是比较容易理解的,在子类中调用父类的构造函数.另外,这种方法最大的一个优点就是说构造继承可以实现多继承,复习下这个代码: function ...
- [svc]cisco ipsec使用证书认证
基础配置 用的c7200-adventerprisek9-mz.151-4.M2.bin - R1 conf t int f0/0 ip add 202.100.1.1 255.255.255.0 n ...
- NSArray的排序方法
转自:http://blog.csdn.net/lixuwen521/article/details/7848893 1.sortedArrayUsingSelector (按Key值大小对NSDic ...
- C++ Dll 编写入门
一.前言 自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上 Windows操作系统中几乎所有的内容都由DLL以一 ...
- The power of now
惊喜的发现,在这个短暂而又漫长的盛夏里心情开始随天气而变了(*^__^*) ...... <秘密>和<当下的力量>两者都一样,看起来费劲,不过还真的有点道理. <冰与火之 ...
- c++之——抽象基类
在一个虚函数的声明语句的分号前加上 =0:就可以将一个虚函数变成纯虚函数,其中,=0只能出现在类内部的虚函数声明语句处.纯虚函数只用声明,而不用定义,其存在就是为了提供接口,含有纯虚函数的类是抽象基类 ...
- [转]好用工具:Oracle SQL Developer
我們一直以來就很少使用 Oracle 資料庫,一年下來也頂多 1 ~ 2 個案子採用 Oracle 的資料庫,所以一直都對 Oracle 資料庫的操作不太熟悉,尤其是用 Oracle 內建的那些超難用 ...
- 1U是什么意思
U(unit的缩写)是服务器尺寸的单位规定的尺寸是服务器的宽度和高度,48.26cm=19英寸,高度4.445cm的倍数. 所谓“1U的PC服务器”,就是外形满足EIA规格.厚度为4.445cm的产品 ...
- 一款纯css3实现的数字统计游戏
今天给大家分享一款纯css3实现的数字统计游戏.这款游戏的规则的是将所有的数字相加等于72.这款游戏的数字按钮做得很美观,需要的时候可以借用下.一起看下效果图: 在线预览 源码下载 实现的代码. ...