package com.jckb;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer; public class Test {
public static void main(String[] args) {
// m();
// inputStreamDemo();
// outputStreamDemo();
m8();
} // 序列输入流
static void m8() {
InputStream is = null;
ObjectInputStream ois = null;
File file = null;
try {
String pathname = "D://file6.txt";
file = new File(pathname);
is = new FileInputStream(file);
ois = new ObjectInputStream(is);
Object obj=ois.readObject();
if(obj instanceof Student){
Student stu =(Student)obj;
System.out.println(stu.toString());
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) { e.printStackTrace();
}
} // 序列输出流
static void m7() {
OutputStream out = null;
ObjectOutputStream os = null;
try {
out = new FileOutputStream("D://file6.txt");
os = new ObjectOutputStream(out);
Student stu = new Student("张三", 20);
os.writeObject(stu);
System.out.println("序列号成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
os.flush();
os.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} // 带缓冲的字符输出流
static void m6() {
Writer w = null;
BufferedWriter bw = null;
try {
w = new FileWriter("D://file5.txt");
bw = new BufferedWriter(w);
String str = "再见2016,你好2017!";
bw.write(str);
System.out.println("写入成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭流
try {
if (bw != null) {
bw.flush();
bw.close();
}
if (w != null) {
w.close();
}
} catch (IOException e) {
e.printStackTrace();
} } } // 带缓冲的字符输入流
static void m5() {
Reader in = null;
BufferedReader br = null;
try {
in = new FileReader("D://file4.txt");
br = new BufferedReader(in);
String result = null;
while ((result = br.readLine()) != null) {
System.out.println(result);
}
br.close();
in.close();
} catch (Exception e) {
e.printStackTrace();
}
} // 字符输入流
static void m4() {
FileReader fr = null;
try {
fr = new FileReader("D://file4.txt");
char[] cbuf = new char[1024];
int result = -1;
while ((result = fr.read(cbuf)) != -1) {
String s = new String(cbuf, 0, result);
System.out.println("result=" + result);
System.out.println(s);
}
fr.close();
} catch (Exception e) {
e.printStackTrace();
}
} // 字符输出流
static void m3() {
FileWriter w = null;
try {
w = new FileWriter(new File("D://file4.txt"));
String str = "你好2017!";
w.write(str);
System.out.println("写入成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
w.flush();
w.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} // 缓冲流
static void m2() {
InputStream is;
BufferedInputStream bs = null;
try {
is = new FileInputStream("D:\\file3.txt");
bs = new BufferedInputStream(is);
byte[] b = new byte[24]; int result;
while ((result = bs.read(b)) != -1) {
String chunk = new String(b, 0, result);
System.out.println(chunk);
}
bs.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
}
} static void m() {
System.out.println(File.pathSeparator);
System.out.println(File.pathSeparatorChar);
System.out.println(File.separator);
System.out.println(File.separatorChar);
File file = new File("D:\\file2.doc");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
boolean b = file.exists();
System.out.println(b);
} // 字符流的读入
static void inputStreamDemo() {
String pathname = "D:\\file3.txt";
File file = new File(pathname);
FileInputStream in = null;
try {
in = new FileInputStream(file);
System.out.println("字节数为:" + in.available()); int data = -1;
// read() while((data=in.read())!=-1){
System.out.println((char) data); // 带缓冲区的字符流的读取read(byte[]b)
byte[] b = new byte[in.available()];
while (in.read(b) != -1) {
for (byte item : b) {
System.out.println((char) item);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} // 字符流的写出
static void outputStreamDemo() {
String pathname = "D:\\file.txt";
FileOutputStream os = null;
try {
os = new FileOutputStream(new File(pathname), true);
byte[] b = { 'a', 'b', 'c', 'v' };
os.write(b);
System.out.println("写入成功!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.jckb;

import java.io.Serializable;

/**学生类包含姓名、年龄
* 如果那个属性不需要序列号,要在前面加上关键字 transient
* @author gx
*
*/ public class Student implements Serializable{ private static final long serialVersionUID = 1L;
private String name;//姓名
private int age ;//年龄 public Student(String name, int age) {
super();
this.name = name;
this.age = age;
} public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} @Override
public String toString() {
return name+"---"+age;
} }

 

Java输入输出流简单案例的更多相关文章

  1. Java输入/输出流体系

    在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘 Java输入/输出流体系 1.字节流和字符流 字节流:按字节读取.字符流: ...

  2. 深入理解Java输入输出流

    Java.io包的File类,File类用于目录和文件的创建.删除.遍历等操作,但不能用于文件的读写. Java 对文件的写入和读取涉及到流的概念,写入为输出流,读取为输入流.如何理解流的概念呢?可以 ...

  3. Java 输入输出流 转载

    转载自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所 ...

  4. java输入输出流总结 转载

    一.基本概念 1.1 什么是IO?     IO(Input/Output)是计算机输入/输出的接口.Java中I/O操作主要是指使用Java进行输入,输出操作.     Java所有的I/O机制都是 ...

  5. Java输入输出流(转载)

    转自http://blog.csdn.net/hguisu/article/details/7418161 目录(?)[+] 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作 ...

  6. 【java开发系列】—— java输入输出流

    前言 任何语言输入输出流都是很重要的部分,比如从一个文件读入内容,进行分析,或者输出到另一个文件等等,都需要文件流的操作.这里简单介绍下reader,wirter,inputstream,output ...

  7. Java 输入输出流 (七)

    1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...

  8. Java基础学习总结(47)——JAVA输入输出流再回忆

    一.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列. Java的I/O流提供了 ...

  9. java输入/输出流的基本知识

    通过流可以读写文件,流是一组有序列的数据序列,以先进先出方式发送信息的通道. 输入/输出流抽象类有两种:InputStream/OutputStream字节输入流和Reader/Writer字符输入流 ...

随机推荐

  1. 1076 Forwards on Weibo (30)(30 分)

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  2. JSOI2008星球大战——联通块数量

    题目:https://www.luogu.org/problemnew/show/1197 此题不能按时间顺序进行删点.求连通块数量,而应打破时间的思维,先形成一张没有要删去的点的图,再从后往前逐个加 ...

  3. BZOJ2467五角形生成树——数学

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2467 可以得出只需在每个五角形中去掉任意一条边,在某个五角形中去掉包括内边的两条边即可. 代码 ...

  4. Ubuntu 16.04 LTS 一键安装VNC

    Ubuntu 16.04 LTS 安装VNC,在百度和谷歌找了很多教程,不是太老,就是说的驴唇不对马嘴,所以忍不住写一些以正视听. Ubuntu 16.04 LTS是最近出的LTS版本系统,估计未来也 ...

  5. RT-Thread信号量使用(动态/静态信号量) 及 信号量的四种使用场合

    信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用.在进入一个关键代码段之前,线程必须获取一个信号量:一旦该关键代码段完成了 ...

  6. eclipse修改workspace

    Eclipse是一款很强的Java IDE,我们在开始的时候,往往设定了默认的workspace,当用久在之后,我们可能要去更改一下workspace的位置,但是在启动的时候已经不会显示更改了.下面有 ...

  7. 《Java多线程编程核心技术》读后感(八)

    不使用等待/通知机制实现线程间通信 使用sleep()结合while(true)死循环来实现多个线程间通信 package Third; import java.util.ArrayList; imp ...

  8. 【机器学习】分类算法——Logistic回归

    一.LR分类器(Logistic Regression Classifier) 在分类情形下,经过学习后的LR分类器是一组权值w0,w1, -, wn,当测试样本的数据输入时,这组权值与测试数据按照线 ...

  9. php array数组(第一部分)

    创建一个数组 <?php $arr = array("My","name","is","zhangsan"); e ...

  10. C++ STL vector使用总结

    vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说vect ...