`
吴亚辉
  • 浏览: 11634 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java I/O常用流示例

    博客分类:
  • Code
阅读更多
package io;
import java.io.*;
/**
* 利用缓冲区原理,BufferedInputStream,
* 实现的文件字节流读取功能示范
* @author 辉太郎
*/
public class BufferedInOutputStream {
public BufferedInOutputStream() {
   ioTest2();
}
public void ioTest2() {
   FileInputStream in = null ;
   BufferedInputStream bi = null;
   int i= 0;
   int count=0;
   try{
    in = new FileInputStream("D:/j/o/java2.txt");
    bi = new BufferedInputStream(in);
    while(( i=bi.read())!=-1) {
     System.out.print((char)i);
     count++;
    }
    System.out.println(count);
    in.close();
    bi.close();
   }catch (IOException e){
    e.printStackTrace();
   }
}
public static void main(String[] args) {

   new BufferedInOutputStream();
} 
}




package io;

import java.io.*;

/**
* 利用缓冲区原理,BufferedInputStream, 
* 实现的文件字符流读取和写入功能示范
* @author 辉太郎
*/
public class BufferedReaderWriter {
public BufferedReaderWriter() {
   bufferRdWter();
}

public void bufferRdWter() {
   FileReader fr = null;
   FileWriter wt = null;
   BufferedReader br = null;
   BufferedWriter bw = null;
   String s = "";
   try {
    fr = new FileReader("D:/j/o/java.txt");
    br = new BufferedReader(fr);
    wt = new FileWriter("D:/j/o/javat2.txt");
    bw = new BufferedWriter(wt);

    while ((s = br.readLine()) != null) {

     bw.write(s);
    }

   } catch (FileNotFoundException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   } finally {

    try {
     bw.flush();
     wt.close();
     bw.close();
     br.close();
     fr.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
}
public static void main(String[] args) {
   new BufferedReaderWriter();
}
}




package io;

import java.io.*;

/**
* 数据流,注意的是先进先出.数据流方便我们用IO输出基本数据类型的值.比如它提供readDouble();
* @author 辉太郎
*/
public class DataInOutputStream {
public DataInOutputStream() {
   dataInOutputStream();
}

public void dataInOutputStream() {

   ByteArrayOutputStream bs = new ByteArrayOutputStream();
   DataOutputStream ds = new DataOutputStream(bs);

   try {
    ds.writeDouble(Math.random());
    ds.writeBoolean(false);

    // 其中bs.toByteArray()是把开始我们写入的东西放到这个字节数组中,然后我们从这个字节数组中取出数据
    ByteArrayInputStream bi = new ByteArrayInputStream(bs.toByteArray());
    DataInputStream di = new DataInputStream(bi);

    System.out.println(di.available());
    System.out.println(di.readDouble());
    System.out.println(di.readBoolean());

    di.close();
    bi.close();
    ds.close();
    bs.close();

   } catch (IOException e) {
    e.printStackTrace();
   }
}

public static void main(String[] args) {
   new DataInOutputStream();

}

}




package io;

import java.io.*;

/**
*  
* FileInputStream/FileOutputStream的示例
* @author 辉太郎
*/
public class InOutputStream {
public InOutputStream() {
   inOutputStream();
}

public void inOutputStream() {
   InputStream is = null;
   OutputStream os = null;
   byte[] b;
   int i = 0;
   try {
    is = new FileInputStream("D:/j/o/java2.txt");
    os = new FileOutputStream("D:/j/o/java.txt");
    b = new byte[is.available()];
    while ((i = is.read(b)) != -1) {
     os.write(b);
    }
   
    os.close();
    is.close();

   } catch (IOException e) {
    e.printStackTrace();
   }
}

public static void main(String[] args) {
   new InOutputStream();
}
}



package io;

import java.io.*;

/**
* 
* 转换流示例,这个流最大的作用就是将字节流转换成字符流来用!
* @author 辉太郎
*/
public class InOutputStreamReaderWriter {
public InOutputStreamReaderWriter() {
   inOutputReaderWriter();
}

public void inOutputReaderWriter() {
   InputStreamReader ir = null;
   OutputStreamWriter ow = null;
   int i = 0;
   try {
    ir = new InputStreamReader(new FileInputStream("D:/j/o/java.txt"));
    ow = new OutputStreamWriter(new FileOutputStream(
      "D:/j/o/java2.txt", true), "ISO8859-1");// latin-1
    System.out.println(ow.getEncoding());

    while ((i = ir.read()) != -1) {
     ow.write(i);
    }
    ow.write("java.io");
   } catch (IOException e) {
    e.printStackTrace();
   } finally {

    try {
     ow.flush();
     ow.close();
     ir.close();
    } catch (IOException e) {
     e.printStackTrace();
    }

   }

}

public static void main(String[] args) {
   new InOutputStreamReaderWriter();

}

}



package io;

import java.io.*;

/**
* InputStreamReader外面套一个BufferedReader,来实现接受控制台System.in输入的字符
* 
* @author 辉太郎
*/
public class InputStreamSystemIn {
public InputStreamSystemIn() {
   systemInIo();
}

public void systemInIo() {
   String s = "";
   InputStreamReader ir = null;
   BufferedReader br = null;
   ir = new InputStreamReader(System.in);
   br = new BufferedReader(ir);

   try {

    while (s != null) {
     s = br.readLine();
     if (s.equals("2")) {
      break;
     } else {
      System.out.println(s);
     }
    }
    br.close();
    ir.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
}

public static void main(String[] args) {
   new InputStreamSystemIn();
}
}



package io;

import java.io.*;

/**
* ObjectStream流,对象序列化
* @author 辉太郎
*/
public class ObjectStream {
public ObjectStream() {
   objectStream();
}

public void objectStream() {
   Test t = new Test();
   try {
    FileOutputStream fs = new FileOutputStream("D:/j/o/java.dat");
    ObjectOutputStream oo = new ObjectOutputStream(fs);
    oo.writeObject(t);

    FileInputStream fi = new FileInputStream("D:/j/o/java.dat");
    ObjectInputStream oi = new ObjectInputStream(fi);
    Test tt = (Test) oi.readObject();
    System.out.println(tt.d + " " + tt.i + " " + tt.k + " " + tt.s);

   } catch (IOException e) {

    e.printStackTrace();
   } catch (ClassNotFoundException e) {

    e.printStackTrace();
   }
}

public static void main(String[] args) {

   new ObjectStream();

}

}

class Test implements Serializable {
int i = 22;

int k = 11;

// 下面的transient关键字,作用是将d设为透明的,不存在的,然后在输出的时候就输出默认值
transient double d = 22.22;

String s = "string";
}

---------------------------------------

package io;

import java.io.*;

/**
* PrintStream 打印输出流.下面这个例子 它是通过设置System.setOut来指向我们FileOutputStream 指向的文件流
* 所以最后输出就是在这个java.txt文件里面
* 
*/
public class PrintStreamTest {
PrintStreamTest() {
   printStreamT();
}

public void printStreamT() {
   PrintStream ps = null;
   try {
    FileOutputStream fis = new FileOutputStream("D:/j/o/java.txt");
    ps = new PrintStream(fis);

    if (ps != null) {
     System.setOut(ps);
    }

    System.out.println("高枕吴忧");
   } catch (FileNotFoundException e) {
    e.printStackTrace();
   }
}

public static void main(String[] args) {
   new PrintStreamTest();

}

}

-------------------------------------

package io;

import java.io.*;
import java.util.Date;

/**
* @author 高枕吴忧
* 利用PrintWriter实现的一个"虚假"的日志处理
*
*/
public class PrintWriterTest {

public PrintWriterTest() {
   printWriter();
}

public void printWriter() {
   String s = null;
   BufferedReader br = 
    new BufferedReader(new InputStreamReader(System.in));
   try {
    BufferedWriter bw = 
     new BufferedWriter(new FileWriter("D:/j/o/java.txt",true));
    PrintWriter log = 
     new PrintWriter(bw);
    while((s = br.readLine()) != null) {
     if(s.equalsIgnoreCase("exit")){
      break;
     }
     log.println(" - - - - - - - - - - - -");
     log.println(s.toUpperCase());
     log.flush();
    }
    log.println("===="+new Date()+"====");
    log.flush();
    log.close();
   
   } catch (IOException e) {
   
    e.printStackTrace();
   }
}


public static void main(String[] args) {
   new PrintWriterTest();

}

}

-------------------------------------

package io;

import java.io.*;

/**
* @author 高枕吴忧
* Reader/Writer字符输入输出流示例.
*
*/
public class ReaderWriter {
public ReaderWriter() {
   readerWriter();
}
public void readerWriter() {
   Reader rd = null;
   Writer wt = null;
   int i = 0 ;
   try {
    rd = new FileReader("D:/j/o/java.txt");
    wt = new FileWriter("D:/j/o/javat2.txt");
    while((i = rd.read()) != -1) {
     wt.write(i);
    }
    wt.flush();
    wt.close();
    rd.close();
   
   } catch (FileNotFoundException e) { 
    e.printStackTrace();
   } catch (IOException e) { 
    e.printStackTrace();
   }
}
public static void main(String[] args) {
   new ReaderWriter();
}

}

1
0
分享到:
评论

相关推荐

    Java I/O详细笔记

    下面通过两个示例来展示如何使用Java I/O读取文件内容: **5.1 常用读取字节文件** ```java public static void readFileByBytes(String fileName) { File file = new File(fileName); InputStream in = null; ...

    java_I/O流的教程

    本教程详细讲解了这些知识点,并配以代码示例和笔记,旨在帮助学习者逐步掌握Java I/O流的使用,无论你是初学者还是有一定经验的开发者,都能从中受益。通过深入学习和实践,你将能够熟练地处理各种数据输入输出场景...

    Java使用I/O流读取文件内容的方法详解

    Java使用I/O流读取文件内容的方法是Java编程中常用的文件读取方式。该方法可以将文件内容读取到程序中,并对其进行处理和分析。在Java中,I/O流是指数据流向某个对象的数据序列,并且到达这个对象的过程。输入流是...

    IODemo.zip

    在这个"IODemo.zip"中,我们很可能会找到一系列关于Java I/O流的示例代码,这些示例可能涵盖字节流、字符流、缓冲流、转换流以及Apache Commons IO库的一些实用方法。 首先,Java I/O流分为两大类:字节流(Byte ...

    一本输入输出流 I/O的书

    - **概述**:Java 中的 I/O 流分为字节流和字符流两种。 **2. 字节流的父类**:`InputStream` 和 `OutputStream` 类是所有字节流的基类,提供了最基本的读写操作。 **3. InputStream 和 OutputStream 的包装类*...

    Java文件File的使用及I/O的使用

    本文将深入探讨Java中File类的使用以及I/O流的相关知识。 首先,File类是Java.io包中的核心类,它提供了操作文件和目录的功能。但需要注意的是,File类并不能直接读写文件内容,而是用于管理和获取文件的属性。例如...

    java高级特性 - io流.docx

    Java I/O(输入/输出)流作为Java语言中处理输入和输出的一种高级特性,为数据的输入输出提供了丰富的操作接口。通过这一特性,开发者能够有效地读取和写入数据到各种资源中,包括文件、网络等。 #### 二、流的概念...

    Java基本常用代码示例

    Java的I/O流系统处理数据的输入和输出,包括文件操作、网络通信等。 14. **线程**: Java内置了对多线程的支持,可以创建和管理并发执行的任务。 15. **注解**: 注解是元数据,为编译器、JVM或其他工具提供...

    javaIO流编程.pdf

    Java I/O 流编程是Java语言中用于处理输入输出操作的核心机制。流的概念源自于数据传输,它将数据从一个源头(源)传输到目的地(目标)的过程抽象为流。在Java中,I/O流分为两大类:输入流(InputStream)和输出流...

    java实现读取html网页文件

    总结来说,Java通过I/O流可以轻松读取本地HTML文件,结合`Jsoup`库可以方便地处理HTML内容,最后使用JDBC将处理后的数据保存到数据库。这些都是Java开发中常用的技术,对于网络编程和数据处理非常实用。

    Java示例代码

    6. **输入/输出流**:Java的I/O流用于读写数据,包括文件操作、网络通信等。InputStream、OutputStream是基本的抽象类,FileInputStream、FileOutputStream等是常用的实现类。 7. **多线程**:Java内置了对多线程的...

    JAVA C/C++ MFC 中文API chm

    例如,`java.io`包提供了文件操作和流处理功能,`java.util`包中的`ArrayList`和`HashMap`是常用的集合类,`java.net`包则处理网络通信。Java API的设计理念强调了“一次编写,到处运行”,理解其工作原理有助于写出...

    Java-Io流,练习

    这些类在内部维护了一个缓冲区,可以减少实际的物理I/O次数。 五、转换流(Wrapper Stream) 字符流与字节流之间可以通过转换流进行互转。`InputStreamReader`和`OutputStreamWriter`就是这样的转换流,它们分别将...

    深入Java NIO:释放IO性能的新维度

    通过以上介绍,我们可以看到Java NIO为Java的I/O操作带来了革命性的变化,不仅提升了I/O操作的速度,也提供了更加灵活和强大的编程模型。对于那些需要处理大量I/O操作的应用程序来说,Java NIO无疑是一个巨大的福音...

    Java输入、输出流.pdf

    Java输入输出流是Java I/O库中的基础概念,它们用于在程序和外部源之间进行数据的读取和写入操作。在Java中,所有的输入输出操作都是以流的形式进行的,其中 InputStream 和 OutputStream 是两个最基础的抽象类,...

    java高级知识-学习笔记

    ### Java高级知识——Socket通信与I/O流详解 #### 一、Socket通信基础 ##### 1.1 Socket概念 在Java编程中,`Socket`(套接字)是一种用于网络通信的重要技术,它允许两台计算机之间进行双向数据传输。在计算机...

    java nio示例代码

    Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java从1.4版本开始引入的一个新特性,旨在提供一种比传统的IO(I/O)模型更高效、性能更好的处理输入和输出的方式。传统的Java IO基于流(Stream)...

    北大青鸟 Java 教材 第8章描述详细,有示例及图解.

    在北大青鸟的Java教材第8章中,主要讲解了Java的I/O处理,包括文件操作和流的概念。这一章非常详细,包含了丰富的示例和图解,方便学习者理解和实践。 首先,章节介绍了如何使用`Date`类来获取系统的当前时间,以及...

Global site tag (gtag.js) - Google Analytics