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. 浅谈c语言结构体

    对于很多非计算机专业来说,c语言课程基本上指针都不怎么讲,更别说后面的结构体了.这造成很多学生对结构体的不熟悉.这里我就浅谈一下我对结构体的认识. 结构体,就是我们自己定义出一种新的类型,定义好之后, ...

  2. 'java'不是内部或外部命令,另一个解决办法

    我知道环境变量,也知道搞系统变量.别给我粘那些教程了,我的java路程是C:\Program Files\Java\jdk1.6.0_05谁弄好了把那三个变量和值发出来.... JAVA_HOME=C ...

  3. impress.js webslide 参数

    data-transition-duration="2000" 改变切换场景的速度,默认1000data-perspective="500" 改变透视的深度,默 ...

  4. Intel RealSense SDK 简翻

    :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:3px ...

  5. install sun java in ubuntu

    1. 下载: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 2. 解压安装: ...

  6. Xcode下的批量编辑

    说明:目前为止我找到三种查找与替换功能,如果有更多的方式,请在下面留言 第一种:我们常用的查找以及查找与替换功能 在Windows下,使用Ctrl+f 快捷键查找.用Ctrl+h来进行查找与替换功能. ...

  7. 【Python】二分查找算法

    二分查找:在一段数字内,找到中间值,判断要找的值和中间值大小的比较.如果中间值大一些,则在中间值的左侧区域继续按照上述方式查找.如果中间值小一些,则在中间值的右侧区域继续按照上述方式查找.直到找到我们 ...

  8. 实时控制软件设计 第一次作业 Draw

    #include <iostream> #include <cstring> #include <math.h> #include <Eigen/Dense& ...

  9. [Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法

    主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法. 在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置 ...

  10. 如何开发、调试Hybrid项目-- 入门篇

    前言 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发效率的要求,这个时候使用IOS&Andriod开发一个APP似乎成本有点过高了,而H5的低成本.高效率.跨平台等特性 ...