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流. ...
随机推荐
- shu_1232 老王赛马
http://202.121.199.212/JudgeOnline/problem.php?cid=1078&pid=2 分析:贪心. 用我方最好的马去解决可以解决的对方的最好的马,如是才干 ...
- Android系统框架介绍
src目录:主要是完成java代码的编写 assets目录:资源目录 res目录:存在图片,布局文件和字符串.菜单等文件 bin目录:输出文件夹,如生成的APK文件 project,propertie ...
- ORACLE 新增记录 & 更新记录
开发中偶尔需要新增一条记录或修改一条记录的几个字段,语法中有微妙的区别. 由于不是经常写,久不写就忘记了,而又要重新查找或调试. 新增记录语法: --新增记录(仿照已有表记录)INSERT INTO ...
- Spark学习笔记总结-超级经典总结
Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用.减少了延时处理,提高 ...
- oracle中的字符串函数详解
花了点时间 复习.了一下字符串函数 希望对初学者有帮助 ----------连接字符串函数-----------------select concat('leiyi','hubei') from du ...
- xml与dataset的数据交互
1. this.dsConfig = new DataSet(); //使用指定的文件将 XML 架构和数据读入 System.Data.DataSet. this.dsConfig.ReadXml( ...
- 【WPF】给下拉列表ComboBox绑定数据
思路:给ComboBox控件设置它的ItemSource绑定到ViewModel中的某个列表上,该列表是某个实体类的集合(如List< Person >),而ComboBox列表要显示的是 ...
- 修改 login的串口重定向
1 在console-telnet 使用vi工具编辑 /etc/inittab 文件 vi /etc/inittab (回车)2 按 i 进入编辑模式:3 将文件中的ttyS0 改为 ttyS3 ...
- BusyBox inittab配置
inittab第一行指定初始化脚本,开启所有应用程序,必须有. ::sysinit:/etc/init.d/rcS 在第一行执行完后,执行剩余行命令,此终端要接受命令交互需开启sh. ::askfir ...
- Tslib步骤以及出现问题的解决方案(转)
嵌入式设备中触摸屏使用非常广泛,但触摸屏的坐标和屏的坐标是不对称的,需要校准.校准广泛使用的是开源的tslib. Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波.去抖.校准等功能, ...