二进制I/O类

    FileInputStream类和FileOutputStream类
      *FileOutputStream(file: File)
      *FileOutputStream(filename: String)
      *FileOutputStream(file: File, append: boolean)
      *FileOutputStream(filename: String, append: boolean)
      如果文件不存在,则会创建一个新文件。
      如果这个文件已经存在,前两个构造方法将会删除文件的当前内容。
      若要在已存在的文件上进行修改,则将最后两个构造方法中的参数append设置为true

 public class TestFileStream {
public static void main(String[] args) throws java.io.IOException{
java.io.OutputStream output = new java.io.FileOutputStream("temp.dat"); for(int i = 97; i <= 122; i++)
output.write(i);
output.close(); java.io.InputStream input = new java.io.FileInputStream("temp.dat"); int value;
//从input.read()中读取一个字节,然后将它赋值给value,并且检验它是否为-1。输入值为-1意味着文件的结束。
while((value = input.read()) != -1)
System.out.println(value); //不关闭流可能会在输出文件中造成数据受损,或导致其他的程序设计错误。
input.close();
}
}

TestFileStream.java

    DataInputStream类和DataOutputStream类
      DataInputStream从数据流读取字节,并且将它们转换为正确的基本类型值或字符串值。
      DataOutputStream将基本类型的值或字符串转换为字节,并且将字节输出到数据流。

 import java.io.RandomAccessFile;

 public class TestDataStream {
public static void main(String[] args) throws java.io.FileNotFoundException,java.io.IOException{
java.io.DataOutputStream dos = new java.io.DataOutputStream(new java.io.FileOutputStream("temp.dat"));
dos.writeUTF("BinZheng");
dos.writeDouble(95.5);
dos.close(); java.io.DataInputStream dis = new java.io.DataInputStream(new java.io.FileInputStream("temp.dat"));
System.out.println("姓名:"+dis.readUTF()+"-"+"分数:"+dis.readDouble());
dis.close(); RandomAccessFile raf = new RandomAccessFile("1234.txt", "rw");
raf.write(51);
raf.close();
}
}

TestDataStream.java

    BufferedInputStream类和BufferedOutputStream类
      可以通过减少读写次数来提高输入和输出的速度。
      其为存储字节在流中添加一个缓冲区,以提高处理效率。
      如果没有指定缓冲区大小,默认的大小是521个字节。缓冲区输入流会在每次读取调用中尽可能多地将数据读入缓冲区。相反地,只有当缓冲区已满或调用flsh()方法时,缓冲输出流才会调用写入方法。

    对象的输入/输出
      ObjectInputStream类和ObjectOutputStream类除了可以实现基本数据类型与字符串的输入和输出之外,还可以实现对象的输入和输出。所以完全可以用ObjectInputStream类和ObjectOutputStream类代替DataInputStream类和DataInputStream类。

 public class TestObjectOutputStream {
public static void main(String[] args) throws java.io.IOException,ClassNotFoundException{
java.io.ObjectOutputStream output = new java.io.ObjectOutputStream(new java.io.FileOutputStream("object.dat"));
//若要提高程序的性能,可以使用下面的语句代替上一行
//java.io.ObjectOutputStream output1 = new java.io.ObjectOutputStream(new java.io.BufferedOutputStream(new java.io.FileOutputStream("object.dat")));
output.writeUTF("BinZheng");
output.writeDouble(95.5);
output.writeObject(new java.util.Date());
output.close(); java.io.ObjectInputStream input = new java.io.ObjectInputStream(new java.io.FileInputStream("object.dat"));
System.out.println(input.readUTF()+" - "+
input.readDouble()+" - "+
input.readObject());
input.close();
}
}

TestObjectOutputStream.java

    序列化数组
      只有数组中的元素都是可序列化的,这个数组才是可序列化的。

 public class TestObjectStreamForArray {
public static void main(String[] args) throws java.io.FileNotFoundException, java.io.IOException, ClassNotFoundException {
int[] numbers = {1,2,3,4,5};
String[] strings = {"zhengbin","zhengjia","cuimin"};
//若不存在这个文件,则会创建一个新文件。
java.io.ObjectOutputStream oos = new java.io.ObjectOutputStream(new java.io.FileOutputStream("array.dat",true));
oos.writeObject(numbers);
oos.writeObject(strings);
oos.close(); java.io.ObjectInputStream ois = new java.io.ObjectInputStream(new java.io.FileInputStream("array.dat"));
int[] numbers1 = (int[])(ois.readObject());
String[] strings1 = (String[])(ois.readObject());
ois.close(); for(int i = 0;i < numbers1.length;i++){
System.out.print(numbers1[i]);
}
System.out.println();
for(int i = 0;i < strings1.length;i++){
System.out.print(strings1[i]);
}
}
}

TestObjectStreamForArray.java

    随机访问文件
      之前所用的所有数据流都是只读的或只写的。这些数据流的外部文件都是顺序文件,如果不创建新文件就不能更新它们。
      RandomAccessFile类实现了DataInput和DataOutput接口。
      当创建一个RandomAccessFile数据流时,可以指定两种模式(“r”或“rw”)之一。
      模式“r”表明这个数据流是只读的,模式“rw”表明这个数据流即允许读也允许写。

    唉,没啥意思,暂时不深究了

文件导航和I/O

    创建目录:

 import java.io.File;
public class CreateDir {
public static void main(String args[]) {
String dirname = "/tmp/user/java/bin";
File d = new File(dirname);
// Create directory now.
d.mkdirs();
}
}

    目录列表:

 import java.io.File;
public class ReadDir {
public static void main(String[] args) { File file = null;
String[] paths; try{
// create new file object
file = new File("/tmp"); // array of files and directory
paths = file.list(); // for each name in the path array
for(String path:paths)
{
// prints filename and directory name
System.out.println(path);
}
}catch(Exception e){
// if any error occurs
e.printStackTrace();
}
}
}

相关博客:

http://www.cnblogs.com/zhengbin/p/5184271.html

Java基础——I/O续的更多相关文章

  1. 【概念笔记】JAVA基础 - part2

    IT`huhiu前言录 这是续JAVA基础 - part1 链接http://www.cnblogs.com/ithuhui/p/5922067.html的. 笔记慢慢在修改和补充 JAVA里面重要的 ...

  2. Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  3. 毕向东—Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  4. Java基础IO流(一)

    IO概念: 大多数应用程序都需要实现与设备之间的数据传输,例如键盘可以输入数据,显示器可以显示程序的运行结果等.在Java中,将这种通过不同输入输出设备(键盘,内存,显示器,网络等)之间的数据传输抽象 ...

  5. 黑马毕向东Java基础知识总结

    Java基础知识总结(超级经典) 转自:百度文库 黑马毕向东JAVA基础总结笔记    侵删! 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部 ...

  6. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  7. Java基础系列8——IO流超详细总结

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 在初学Java时,I ...

  8. Java 基础(四)| IO 流之使用文件流的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景 ...

  9. 毕向东java基础总结

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

随机推荐

  1. 引擎设计跟踪(九.10) Max插件更新,地形问题备忘

    最近没有大的更新. 最近本来要做max的骨骼/动画导出, 看导出插件代码的时候, 突然想起之前tagent space导出的疑问, 于是确认了一下. http://www.cnblogs.com/cr ...

  2. Http、tcp、Socket连接区别

    转自Http.tcp.Socket连接区别 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助. 1.TCP连接 要想明白Sock ...

  3. 【设计模式六大原则1】单一职责原则(Single Responsibility Principle)

        http://blog.csdn.net/zhengzhb/article/category/926691/1 图片素材来源,java学习手册 ps.内容为自己整理   定义:不要存在多于一个 ...

  4. 关联式容器(associative containers)

    关联式容器(associative containers) 根据数据在容器中的排列特性,容器可分为序列式(sequence)和关联式(associative)两种. 标准的STL关联式容器分为set( ...

  5. TCP 流模式与UDP数据报模式(转)

    TCP流模式与UDP数据报模式http://blog.csdn.net/s3olo/article/details/7914717 数据报(datagram)通常是指起始点和目的地都使用无连接网络服务 ...

  6. spring webservice 开发demo (实现基本的CRUD 数据库采用H2)

    在实现过程中,遇到两个问题: 1: schema 写错: 错误: http://myschool.com/schemas/st 正确: http://myschool.com/st/schemas   ...

  7. asp.net 权限问题

    asp.net项目中通过Web.config配置文件及文件夹的访问权限! http://blog.csdn.net/qingyun1029/article/details/6184723

  8. 如何在Android应用程序中使用传感器模拟器SensorSimulator

    原文地址; 如何在Android应用程序中使用传感器模拟器 - 移动平台应用软件开发技术 - 博客频道 - CSDN.NET http://blog.csdn.net/pku_android/arti ...

  9. IP地址字符串与BigInteger的转换

    /**  * Copyright (c) 2010, 新浪网支付中心  *      All rights reserved.  *  * Java IP地址字符串与BigInteger的转换,  * ...

  10. *CentOS下简单的MySQL数据库操作

    1.登录成功之后退出的话,直接输入quit或者exit即可.