package IOTest;

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.RandomAccessFile; public class IOMain { public static void main(String[] args) throws IOException { /*
* 1
*/
// try (FileReader fr = new FileReader("E:/Workspase/MyEclipse 2015 CI/Shulie/src/A2.java")) {
// char[] cbuf = new char[32];
// int hasRead = 0;
// while((hasRead = fr.read(cbuf))>0){
// System.out.println(new String(cbuf, 0, hasRead));
// }
//
// } catch (FileNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } /*
* 2 节点流
*/
// File f = new File("newfile.txt");
//
// try(
// FileInputStream fis = new FileInputStream("E:/Workspase/MyEclipse 2015 CI/Shulie/src/A2.java");
// FileOutputStream fos = new FileOutputStream(f))
// {
// byte[] buf = new byte[1024];
// int hasRead = 0;
// while((hasRead = fis.read(buf))>0){
// fos.write(buf, 0, hasRead);
// }
//
// }catch(Exception e){
// e.printStackTrace();
// } /*
* 3 转换流
*/
// try (InputStreamReader reader = new InputStreamReader(System.in);
// BufferedReader bf = new BufferedReader(reader) ){
// String line = null;
// while((line = bf.readLine()) !=null){
// if("exit".equals(line)){
// System.exit(1);
// }
// System.out.println(line);
// }
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } /*
* 4 重定向输出
*/
// try (PrintStream ps = new PrintStream(new FileOutputStream("out.txt"))) {
//
// System.setOut(ps);
// System.out.println(new Scanner(System.in).next());
// System.out.print(new IOMain());
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//
// /*
* 5 RandomAccessFile
*/
//
// try (RandomAccessFile raf = new RandomAccessFile("newfile.txt", "rw");) {
// System.out.println("指针初始位置:"+raf.getFilePointer());
// raf.seek(300);
// byte[] bbuff = new byte[1024];
// int hasRead = 0;
// while((hasRead = raf.read(bbuff)) > 0){
// System.out.println(new String(bbuff, 0, hasRead));
// }
// raf.seek(raf.length());
// raf.write("\r\n追加的内容!\r\n".getBytes());
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//
//
// insert("out.txt", 3, "\r\n插入的内容\r\n");
// FileInputStream fis = new FileInputStream(new File("out.txt"));
// byte[] bbuff = new byte[1024];
// int hasRead = 0;
// while((hasRead = fis.read(bbuff)) > 0){
// System.out.println(new String(bbuff, 0, hasRead));
// }
//
//
/*
* 6 序列化
*/ // try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.txt"));) {
// Person p1 = new Person("Jeff", 23);
// oos.writeObject(p1);
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } try (ObjectInputStream oip = new ObjectInputStream(new FileInputStream("object.txt"));) {
Person p2 = (Person) oip.readObject();
System.out.println("name:"+p2.getName()+"\n"+"age:"+p2.getAge());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
public static void insert(String fileName, long pos, String insertContent) throws IOException{
File temp = File.createTempFile("temp", null);
temp.deleteOnExit();
try (
RandomAccessFile raf = new RandomAccessFile(fileName, "rw");
FileOutputStream fos = new FileOutputStream(temp);
FileInputStream fis = new FileInputStream(temp);) {
raf.seek(pos);
byte[] buff = new byte[64];
int hasRead = 0;
while((hasRead = raf.read(buff))>0){
fos.write(buff, 0, hasRead);
}
raf.seek(pos);
raf.write(insertContent.getBytes());
while((hasRead = fis.read(buff))>0){
raf.write(buff, 0, hasRead);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
class Person implements java.io.Serializable{
private String name;
private int age;
public Person(String name, int age){
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;
} }
class PersonNew implements java.io.Externalizable{
private String name;
private int age;
public PersonNew(String name, int age){
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 void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(new StringBuffer(name).reverse());
out.writeInt(age); }
@Override
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
this.name = ((StringBuffer)in.readObject()).reverse().toString();
this.age = in.readInt();
} }

javaIO-学习笔记的更多相关文章

  1. JavaIO学习笔记(五)

    JavaIO前期准备 什么是同步 指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 什么是异步 异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO ...

  2. javaio学习笔记-字符流类(1)

    1.java.io包中的字符流类-BufferedReader和BufferedWriter: BufferedReader:缓存的输入字符流; BufferedWriter:缓存的输出字符流; In ...

  3. javaio学习笔记-字符流类(2)

    1.java.io包中的字符流类-FileReader和FileWriter: BufferedReader:缓存的输入字符流; BufferedWriter:缓存的输出字符流; FileReader ...

  4. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  5. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  6. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  7. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  8. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  9. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  10. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

随机推荐

  1. Visual Studio 2015 Update 2

    Visual Studio Community 2015(带Update2)(社区版,针对个人免费): 简体中文版 || SHA1:待更新 繁体中文版 || SHA1:待更新 英文版 || SHA1: ...

  2. C++Primer 一

    1.vertor和数组的区别: 数组的长度固定.而且程序是无法知道一个给定数组的长度,数组没有获取器容量大小的size操作,也不提供puch_back操作在其中自动添加元素 2.数组定义中的类型可以示 ...

  3. Java Base64 类

    package org.yp.ypfinancing.core.service.payV2.domain.service.Sdp.utils; public final class Base64 { ...

  4. 使用composer安装项目依赖

    Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们 下载并安装composer composer官方文档有好几种安装方法,此处只介绍我实验过 ...

  5. JQuery中$.ajax()方法参数都有哪些?

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  6. 采用ubuntu系统来安装tensorflow

    最近在学习google新开源的深度学习框架tensorflow.发现安装它的时候,需要依赖python2.7.X;我之前一直使用的linux是centos.而centos不更新了,里面的自带的pyth ...

  7. 使用checkbox做出radiobutton的效果

    首先分别使用不同name的checkbox放在同一个tr的两个td内.并为他们设置onclick事件来改变点击后状态. php: str[info]="<table align='ce ...

  8. cocos2d-x 常用UI

    CCSprite* sprite = CCSprite::create("CloseNormal.png"); sprite->setPosition(ccp(50, 50) ...

  9. 【其他】win7创建wifi热点共享给手机使用

    出门在外,有时候网络有诸多不便,需要用笔记本创建wifi热点给手机用:本人测试xp怎么配置都不好使,但win7有可行的方案,不依赖第三方软件. 详述如下: 场景一:win7 + A(PC机)(用无线连 ...

  10. Python常用函数、方法、模块记录

    常用函数: 1.pow():乘方 2.abs():绝对值 3.round():四舍五入 4.int():转换为整数 5.input():键盘输入(会根据用户的输入来做类型的转换) raw_input( ...