package com.fmy;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.CharArrayReader;
import java.io.CharArrayWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.Serializable;
import java.io.Writer; public class Demo1 { static File file1 =new File("D:/info1.txt");
static File file2 =new File("D:/info2.txt"); /**
* 使用字节流复制文本
*/
public static void demo1(){
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(file1);
os = new FileOutputStream(file2);
byte []buf =new byte[1024];
int len;
while ((len=is.read(buf))!=-1) {
System.out.println(new String(buf,0,len));
os.write(buf, 0, len);
} } catch (Exception e) {
e.printStackTrace();
}finally{
try {
is.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 使用字符流赋值文本
*/
public static void demo2() {
Writer w=null;
Reader r=null;
try { w = new FileWriter(file2);
r = new FileReader(file1); char buf[] = new char[512];
int len;
while ((len=r.read(buf))!=-1) {
w.write(buf);
} } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
w.close();
r.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
/**
* 使用字节流赋值文本 ---使用包装流
*/
public static void demo3() {
InputStream is=null;
OutputStream os=null;
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try {
is = new FileInputStream(file1);
os = new FileOutputStream(file2);
bis = new BufferedInputStream(is);
bos = new BufferedOutputStream(os); byte[] buf =new byte[1024];
int len;
while ((len=bis.read(buf))!=-1) {
bos.write(buf,0,len);
} } catch (Exception e) {
e.printStackTrace();
}finally{
try {
bos.close();
bis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} /**
* 使用字符流赋值文本-使用包装流
*/
public static void demo4() {
Writer w = null;
Reader r = null;
BufferedReader br = null;
BufferedWriter bw = null;
try {
r = new FileReader(file1);
w = new FileWriter(file2);
br = new BufferedReader(r);
bw = new BufferedWriter(w);
String buf="";
while ((buf=br.readLine())!=null) {
bw.write(buf);
bw.newLine();
} } catch (Exception e) {
e.printStackTrace();
}finally{
try {
bw.close();
br.close();
} catch (Exception e2) {
e2.printStackTrace();
}
} } /**
* 字节流复制文本 ---运用转化流
*/
public static void demo5(){
BufferedWriter bw = null;
BufferedReader br = null;
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(file1);
os = new FileOutputStream(file2);
bw = new BufferedWriter(new OutputStreamWriter(os,"UTF-8"));
br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
String buf="";
while ((buf=br.readLine())!=null) {
bw.write(buf);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
bw.close();
br.close();
} catch (IOException e) {
e.printStackTrace();
}
} } /**
* 使用printStream 输出一个文本
*/
public static void demo6(){ OutputStream os = null;
PrintStream ps = null;
try {
os = new FileOutputStream(file2);
ps = new PrintStream(os);
ps.println(true);
ps.println("你好漂亮");
ps.print('我');
ps.print('呸');
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
ps.close();
} } /**
* 使用printWriter输出一个文本
*/
public static void demo7(){ Writer w = null;
PrintWriter pw = null; try {
w = new FileWriter(file2);
pw = new PrintWriter(w);
pw.println(98);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
pw.close();
}
} /**
* 使用 CharArrayReader 和 CharArraysWriter 复制文本
*/
public static void demo8() {
Writer w = null;
Reader r = null;
CharArrayReader car = null;
CharArrayWriter caw = null;
try {
w = new FileWriter(file2);
r = new FileReader(file1);
char [] buf=new char[512];
caw = new CharArrayWriter();
int len;
while ((len=r.read(buf))!=-1){
caw.write(buf, 0, len);
}
car = new CharArrayReader(caw.toCharArray()); while ((len=car.read(buf))!=-1) {
w.write(buf, 0, len);
} } catch (Exception e) {
e.printStackTrace();
}finally{
if (car!=null) {
car.close();
}
if (caw!=null) {
caw.close();
}
try {
if (w!=null) {
w.close();
}
if (r!=null) {
r.close();
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
} } /**
* 使用ByteArrayInputStream和 ByteArrayOutputStream
*/
public static void demo9() { InputStream is = null;
OutputStream os = null;
ByteArrayInputStream bais = null;
ByteArrayOutputStream baos = null;
try {
is = new FileInputStream(file1);
os = new FileOutputStream(file2);
baos = new ByteArrayOutputStream();
byte [] buf = new byte [1024];
int len; while ((len=is.read(buf))!=-1) {
baos.write(buf,0,len);
}
bais =new ByteArrayInputStream(baos.toByteArray());
while ((len=bais.read(buf))!=-1) {
os.write(buf, 0, len);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
bais.close();
baos.close();
os.close();
is.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
} /**
* DataInputStream DataOutputStream使用
*/
public static void demo10(){
DataInputStream dis = null;
DataOutputStream dos = null ;
InputStream is = null;
OutputStream os = null; try {
is = new FileInputStream(file2);
os = new FileOutputStream(file2);
dis = new DataInputStream(is);
dos = new DataOutputStream(os); dos.writeUTF("我喜欢你很久了");
dos.writeFloat(13); dos.close();
System.out.println(dis.readUTF());
System.out.println(dis.readFloat());
dis.close();
} catch (Exception e) {
e.printStackTrace();
} } /**
* 使用ObjectInputSteam和ObjectOutStream
*/
public static void demo11() { InputStream is = null;
OutputStream os = null;
ObjectInputStream ois = null;
ObjectOutputStream oos = null; try {
is = new FileInputStream(file1);
os = new FileOutputStream(file1);
oos = new ObjectOutputStream(os);
ois = new ObjectInputStream(is); oos.writeObject(new Studen(13,"嘿嘿",124125,123));
oos.close(); Studen s = (Studen)ois.readObject();
System.out.println(s.toString());
ois.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} } public static void main(String[] args){
demo11();
} }
class Studen implements Serializable{
/**
*
*/
private static final long serialVersionUID = 8485022571103676109L; private transient int age = 1;//序列化时只会保存age的默认值0 如果是String则为null 其他略.... static private String name="张三"; //序列化时只会保存静态赋值的数值。不管后期对象如何new 序列化存储为张三
/*这个测试成功,是因为都在同一个机器(而且是同一个进程),
* 因为这个jvm已经把name加载进来了,所以获取的是加载好的
* name,如果你是传到另一台机器或者你关掉程序
* 重写写个程序读入Studen.obj,此时因为别的机器或新
* 的进程是重新加载name的,所以name信息就是初始时的信息。
* */
private int salary=100;//实验表明可以序列化
private int weight;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
@Override
public String toString() {
return "Studen [age=" + age + ", name=" + name + ", salary=" + salary
+ ", weight=" + weight + "]";
}
public Studen(int age, String name, int salary, int weight) {
super();
this.age = age;
this.name = name;
this.salary = salary;
this.weight = weight;
} }

java常用IO流集合用法模板的更多相关文章

  1. Java 常用IO流操作详解

    1.基本概念 IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中. 2.IO流的分类 图示:(主要IO流) 3.字节流 ...

  2. java常用IO流数据流小结

      类名 常用方法 说明 输入流 InputStream int read(); 只能读字节流,虽然返回值是int,但只有低8位起作用. DataInputStream Type readType() ...

  3. java常用IO流总结

  4. Java 的 IO 流

    接着上一篇的 “Java 的 File 类” 的随笔,在File类的基础上,我们就走进Java的IO流吧. 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在 ...

  5. Java基础知识强化之IO流笔记68:Properties和IO流集合使用

    1. Properties和IO流集合使用 这里的集合必须是Properties集合:  public void load(Reader reader):把文件中的数据读取到集合中  public v ...

  6. java基础-IO流对象之Properties集合

    java基础-IO流对象之Properties集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Properties集合的特点 Properties类表示了一个持久的属性集. ...

  7. Java之IO流用法总结

    Java的IO流概述:1.I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理设备之间的数据传输.如读/写文件,网络通讯等.2.Java程序中,对于数据的输入/输出操作以“流( ...

  8. 【Java】IO流简单分辨

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827509.html Java的IO流体系十分庞大,并且体系层次稍复杂,很容易记混或记错.在此,我把平时经常用 ...

  9. JAVA中IO流总结

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42119261 我想你对JAVA的IO流有所了解,平时使用的 ...

随机推荐

  1. 笔记5 bean的作用域

    1. Spring定义了多种作用域,可以基于这些作用域创建bean,包括: 单例(Singleton):在整个应用中,只创建bean的一个实例.(默认) 原型(Prototype):每次注入或者通过S ...

  2. C++内存机制中内存溢出、内存泄露、内存越界和栈溢出的区别和联系

    当我们在用C++做底层驱动的时候,经常会遇到内存不足的警告,究其原因,往往是因为内存出现溢出,泄露或者越界等原因.那么他们之间有什么联系吗? 内存溢出(out of memory) 是指程序在申请内存 ...

  3. c语言第四次作业

    (一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"These sides do ...

  4. 一个使用 Python 的人工智能聊天机器人框架

    一个Python 的 AI Chatbot框架 建立一个聊天室可以听起来很棒,但它是完全可行的. IKY是一个内置于Python中的AI动力对话对话界面. 使用IKY,很容易创建自然语言会话场景,无需 ...

  5. MyBatis 传入参数之parameterType

      在MyBatis的select,insert,update,delete这些元素中都提到了parameterType这个属性.MyBatis现在使用parameterType有基本类型和JAVA复 ...

  6. 分布式改造剧集之Redis缓存采坑记

    Redis缓存采坑记 ​ 前言 ​ 这个其实应该属于分布式改造剧集中的一集(第一集见前面博客:http://www.cnblogs.com/Kidezyq/p/8748961.html),本来按照顺序 ...

  7. ubuntu批量更改文件权限

    重装系统之后,把文件从windows分区拷到linux分区发现所有文件的权限全是777,在终端下看到所有文件的颜色都很刺眼,文件有很多,一个一个改不现实,所以写了一段python脚本批量更改文件权限. ...

  8. Vue结合slot插槽分发父组件内容实现高度复用、更加灵活的dialog组件

    之前写过一篇关于vue实现dialog会话框组件的文章(http://www.cnblogs.com/fozero/p/8546883.html)[http://www.cnblogs.com/foz ...

  9. JMETER_从入门到放弃系列

    基础篇 Jmeter(一)_环境部署 Jmeter(二)_基础元件 Jmeter(三)_配置元件 Jmeter(四)_16个逻辑控制器 Jmeter(五)_24个函数 Jmeter(六)_前置处理器 ...

  10. Tinyhttpd for Windows

    TinyHTTPd forWindows 前言 TinyHTTPd是一个开源的简易学习型的HTTP服务器,项目主页在:http://tinyhttpd.sourceforge.net/,源代码下载:h ...