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流. ...
随机推荐
- 在C#中使用WMI查询进程的用户信息
这是一个使用WMI查询信息的例子.看之前请对WMI有一个简单的了解,可以百度,或者查看我上一篇:WMI测试器 主要代码:(需要添加对System.Management的引用) //创建Win32_Pr ...
- Visual Studio 中突出显示的引用
有时候代码中处理的变量多了,看起代码来就比较的费劲,有时想看一个变量都在哪里用到了,还要一个一个的去仔细分辨. 一.VS2012本身就提供了选中提示功能 但是本身带的这个选中提示功能颜色比较浅,不过这 ...
- [svc]samba服务搭建
说实话搞这些很蛋疼, 没啥技术含量. What is Samba? 这个历史悠久了 Since 1992, Samba has provided secure, stable and fast fil ...
- #pragma GCC system_header用法
在看公司公共库的头文件中发现了:#pragma GCC system_header一行,以前没有见过这种用法,在网上查了一下,解释如下: 从#pragma GCC system_header直到文件结 ...
- 【Verilog】verilog实现奇数次分频
实现占空比为50%的N倍奇数分频:首先进行上升沿触发进行模N计数,计数到某一个值时进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%的奇数n分频时钟.再者 同时进行下降沿触发的 ...
- IP地址归属地查询
http://www.ipip.net/download.html#ip_code 下载免费版 IP 地址数据库. 网站下面有官方给出的查找IP地址所属国家.省.市的办法. python版本列出 py ...
- Echarts的option中的data问题
option = { title : { text: '某站点用户访问来源', subtext: '纯属虚构', x:'center' }, tooltip : { trigger: 'item', ...
- 解决CentOS中/var目录满的问题
最近服务器的/var目录总是报警说磁盘满了,查看以后发现主要是/var/log/maillog和/var/spool/mail/root和/var/spool/mqueue目录.从搜索的结果看到应该是 ...
- QDialog:输入对话框、颜色对话框、字体对话框、文件对话框
# _*_ coding:utf-8 _*_ import sys from PyQt4 import QtCore,QtGui class Example(QtGui.QWidget): def _ ...
- 贪心算法or背包问题
贪心方法:总是对当前的问题作最好的选择,也就是局部寻优.最后得到整体最优. 应用:1:该问题可以通过“局部寻优”逐步过渡到“整体最优”.贪心选择性质与“动态规划”的主要差别. 2:最优子结构性质:某个 ...