读书人

java学习小结(IO基础学习)

发布时间: 2012-12-26 14:39:28 作者: rapoo

java学习总结(IO基础学习)

IO基础学习总结

1.InputStream是一个抽象类,它有多种具体的实现类
?1.FileInputStream文件输入流
?2.AudioInputStream音频输入流
?3.ByteArrayInputStream
?4.FilterInputStream过滤输入流
?5.ObjectInputStream对象输入流
?6.PipedInputStream管道输入流
?7.SequenceInputStream
?8.StringBufferInputStream

2.FileInputStream
?1.FileInputStream 是InputStream的一个直接子类,可用于构造从文件中读到数据的流。
?2.常用构造器:
??1.FileInputStream(File file):通过一个文件对象作为参数构造输入流对象
??2.FileInputStream(String path):通过一个文件路径字符串构造连接到指定文件的输入流
??示例:
??

 String str1 = "D:\\My Documents\\Test1.txt";   String str2 = "D:\\My Documents\\Test2.txt";   java.io.FileInputStream fis = new java.io.FileInputStream(str1);//用文件路径名字符串作为参数创建文件输入流   //创建文件对象   java.io.File file = new java.io.File(str2);   java.io.FileInputStream fos = new java.io.FileInputStream(file);//用文件对象作为参数创建文件输入流对象

????
?3.方法使用示例

public class IOTest { /**  * FileInputStream类中方法的测试  *   * @param args  */ public static void main(String[] args) {  // 取得系统的路径分隔符  String s = java.io.File.separator;  // 文件路径名字符串  String path = "D:" + s + "My Documents" + s + "StudySample" + s + "src"    + s + "cn" + s + "xmh" + s + "IOstudy0406" + s + "testtext";  // 创建文件对象  java.io.File file = new java.io.File(path);  try {   // 定义一个字节数组   byte[] b1 = new byte[(int) file.length()];      // 用文件对象作为参数创建文件输入流对象   java.io.FileInputStream fis = new java.io.FileInputStream(file);      // available()-->返回可以从该输入流中读取的字节数   int available = fis.available();   System.out.println("首次检测输入流中可读字节数" + available);      // read()-->从输入流中读取一个字节,返回值为int类型      // skip(long n)-->从输入流中跳过并丢弃 n 个字节的数据   long l = fis.skip(100);   System.out.println("实际跳过输入流中的字节数" + l);      available = fis.available();   System.out.println("此时输入流中可读字节数" + available);      // read(byte[] b)-->从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。   fis.read(b1);      // 输出字节数组所表示的字符串   print(b1);   byte[] b2 = new byte[fis.available()];   /**    * public int read(byte[] b,int off,int len) 从此输入流中将最多 len    * 个字节的数据读入一个 byte 数组中。    *     * @param b    *            - 存储读取数据的缓冲区。    * @param off    *            - 目标数组 b 中的起始偏移量。    * @param len    *            - 读取的最大字节数。    */   // fis.read(b2, 7, 5);   // print(b2);   // 关闭输入流   fis.close();  } catch (Exception e) {   e.printStackTrace();  } } // 输出字节数组所表示的字符串的方法 public static void print(byte[] b) {  String str = new String(b);  System.out.println(str); }}

??

读书人网 >编程

热点推荐