`
i拾贝
  • 浏览: 29970 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java中的流IO

    博客分类:
  • java
阅读更多

java中的流IO

 输入/输出流的分类:

java.io

Class InputStream

java.io

Class OutputStream

java.io

Class Reader

java.io

Class Writer

 

节点流类型(以Reader/Writer结尾的都是字符,以Stream结尾的都是字节):


 

测试FileInputStream类

java.io

Class FileInputStream

TestFileInputStream.java

import java.io.*;

/*
	测试FileInputStream,文件输入流。
*/
public class TestFileInputStream {
  public static void main(String[] args) {
    int b = 0;
    FileInputStream in = null;
    try {
      in = new FileInputStream("F:\\java\\io\\TestFileInputStream.java");
    } catch (FileNotFoundException e) {
      System.out.println("找不到指定文件"); 
      System.exit(-1);//退出系统
    }
    
    try {
	  //读了多少个字节
      long num = 0;
	  //read读出一个字节,!=-1代表还没有读到结尾
      while((b=in.read())!=-1){
		//将b强制转换为char类型,打印出来
        System.out.print((char)b); 
        num++;
      }
	  //关闭
      in.close();  
	  //换行
      System.out.println();
      System.out.println("共读取了 "+num+" 个字节");
    } catch (IOException e1) {
      System.out.println("文件读取错误"); System.exit(-1);
    }
  }
}

 

F:\java\io>javac TestFileInputStream.java

F:\java\io>java TestFileInputStream
import java.io.*;

/*
        ????FileInputStream???????????÷??
*/
public class TestFileInputStream {
  public static void main(String[] args) {
    int b = 0;
    FileInputStream in = null;
    try {
      in = new FileInputStream("F:\\java\\io\\TestFileInputStream.java");
    } catch (FileNotFoundException e) {
      System.out.println("?????????¨????");
      System.exit(-1);//????????
    }

    try {
          //?????à????×???
      long num = 0;
          //read????????×?????!=-1?ú±í???????????á??
      while((b=in.read())!=-1){
                //??b????×?????char?à?????ò??????
        System.out.print((char)b);
        num++;
      }
          //??±?
      in.close();
          //????
      System.out.println();
      System.out.println("???????? "+num+" ??×???");
    } catch (IOException e1) {
      System.out.println("?????????í?ó"); System.exit(-1);
    }
  }
}
共读取了 876 个字节

F:\java\io>

 上面出现好多个????的原因是汉字占两个字节,将占两个字节的汉字强制转为一个字节,无法识别。

 

测试文件输出流,FileOutputStream

java.io

Class FilterOutputStream

TestFileOutputStream.java

import java.io.*;

/*
	测试文件输出流,FileOutputStream
	复制文件的内容
*/
public class TestFileOutputStream {
  public static void main(String[] args) {
	  int b = 0;
	  FileInputStream in = null;
	  FileOutputStream out = null;
	  try {
		//从这个文件往外读数据
	    in = new FileInputStream("F:/java/io/HelloWorld.java");
		//输出的文件
	    out = new FileOutputStream("F:/java/io/HW.java");
	    while((b=in.read())!=-1){
		  //将读到的文件写入输出的文件中
	      out.write(b);
	    }
	    in.close(); 
	    out.close();
	  } catch (FileNotFoundException e2) {
	    System.out.println("找不到指定文件"); 
		System.exit(-1);
	  } catch (IOException e1) {
	    System.out.println("文件复制错误"); 
		System.exit(-1);
	  }
	  System.out.println("文件已复制");
  }
}

 

F:\java\io>javac TestFileOutputStream.java

F:\java\io>java TestFileOutputStream
文件已复制

F:\java\io>

 找到HelloWorld.java和HW.java,发现文件的内容一样。复制成功。

 

 测试

java.io

Class FileReader

TestFileReader.java

import java.io.*;

/*
	通过字符流的形式读取文件FileReader
*/
public class TestFileReader {
  public static void main(String[] args) {
    FileReader fr = null; 
    int c = 0;
    try {
      fr = new FileReader("F:\\java\\io\\TestFileReader.java");
      int ln = 0;
      while ((c = fr.read()) != -1) {
        //char ch = (char) fr.read();
        System.out.print((char)c);
        //if (++ln >= 100) { System.out.println(); ln = 0;}
      }
      fr.close();
    } catch (FileNotFoundException e) {
      System.out.println("找不到指定文件");
    } catch (IOException e) {
      System.out.println("文件读取错误");
    }

  }
}

 

F:\java\io>javac TestFileReader.java

F:\java\io>java TestFileReader
import java.io.*;

/*
        通过字符流的形式读取文件FileReader
*/
public class TestFileReader {
  public static void main(String[] args) {
    FileReader fr = null;
    int c = 0;
    try {
      fr = new FileReader("F:\\java\\io\\TestFileReader.java");
      int ln = 0;
      while ((c = fr.read()) != -1) {
        //char ch = (char) fr.read();
        System.out.print((char)c);
        //if (++ln >= 100) { System.out.println(); ln = 0;}
      }
      fr.close();
    } catch (FileNotFoundException e) {
      System.out.println("找不到指定文件");
    } catch (IOException e) {
      System.out.println("文件读取错误");
    }

  }
}
F:\java\io>

 中文没有乱码。

 

测试

java.io

Class FileWriter

 TestFileWriter.java

import java.io.*;

/*
	通过字符流写入文件
*/
public class TestFileWriter {
  public static void main(String[] args) {
    FileWriter fw = null;
    try {
	  //创建unicode.dat文件
      fw = new FileWriter("F:\\java\\io\\unicode.dat");
      for(int c=0;c<=50000;c++){
		//写入unicode编码的前5000个字符
        fw.write(c);
      }
      fw.close();
    } catch (IOException e1) {
    	e1.printStackTrace();
      System.out.println("文件写入错误");
      System.exit(-1);
    }
  }
}

 

F:\java\io>javac TestFileWriter.java

F:\java\io>java TestFileWriter

F:\java\io>

 在相应文件目录上会存在unicode.dat文件。

 

 

 

 

  • 大小: 23 KB
  • 大小: 168.9 KB
  • 大小: 153.9 KB
分享到:
评论

相关推荐

    java中的io流详解

    Java 中的 IO 流详解 Java 中的 IO 流是指在 Java 语言中对输入输出操作的抽象,主要用于实现程序与外部设备和其他计算机之间的交流,尤其是对磁盘文件的操作。IO 流的概念是在 1984 年由 C 语言第一次引入的,后来...

    Java中文件IO流.pdf

    Java 中文件 IO 流 Java 中文件 IO 流是指 Java 语言中对文件的输入输出操作,通过定义文件流来实现文件的读写操作。文件流是指在程序中用于文件输入输出的对象, Java 中提供了多种文件流类型,包括 InputStream ...

    IO流 javaio java 流

    Java中的IO流是Java核心库的重要组成部分,它用于在不同数据源之间传输数据。Java IO流分为两大类:字符流(Character Stream)和字节流(Byte Stream)。字符流处理单个字符,而字节流处理8位的字节序列。它们又...

    Java-Io流,练习

    Java的IO流是Java编程语言中的重要组成部分,它主要用于数据的输入和输出操作。在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO...

    java中的IO流整理

    Java中的IO流是Java平台核心特性之一,它用于在各种数据源之间传输数据,包括文件、设备、网络连接等。IO流分为输入流(Input Stream)和输出流(Output Stream),按照处理的数据类型又可以分为字节流和字符流。本...

    java中的IO流

    java中的IO流,这个PPT可以帮助学习javaIO流的初学者很有帮助的

    彻底明白java中的IO流

    Java中的IO流是Java核心库java.io中的关键组成部分,它为程序提供了与外部资源交互的能力,包括文件读写、标准设备输入输出等。Java的IO流机制基于流的概念,流可以被视为数据传输的通道,数据按照序列化的方式从...

    Java IO流 总结

    Java IO流是Java语言中最基本和最重要的输入/输出机制,负责将数据从外部世界输入到Java应用程序中或将数据从Java应用程序输出到外部世界。IO流可以分为两大类:字节流和字符流。 1. 节点流:离数据源|程序最近的流...

    java IO流精讲 JAVA IO流实例开发

    Java IO流是Java平台中用于处理输入/输出操作的核心组件,它允许程序与各种数据源(如文件、网络连接、内存缓冲区等)进行交互。Java IO流的精讲涵盖了许多概念和技术,包括流的分类、流的方向、缓冲区的使用、字符...

    java基础之IO流

    - **定义**:Channel类似于传统IO中的文件描述符,但它更灵活且支持双向通信。 - **作用**:Channel用于连接源和目的地,负责实际的数据传输。所有数据的读写操作都需要通过Channel和Buffer共同完成。 - **特点**...

    java中的IO流操作大全

    Java流还可以分为节点流和过滤流。节点流是直接与文件或内存区域进行交互的流,而过滤流则是在节点流的基础上提供了额外的功能,如缓冲、字符编码转换等。 三、Java中IO流的操作示例 案例1:创建新文件 ```java ...

    java中IO流例子

    Java中的IO流是Java平台提供的一种处理输入输出数据的核心机制,广泛应用于文件读写、网络通信、数据转换等场景。IO流分为字节流(Byte Stream)和字符流(Character Stream),它们构成了Java IO系统的基础。 1. *...

    JAVA IO流技术

    在Java IO中,我们需要通过流对象与这些数据源进行交互。 2. 流的概念:流(Stream)是一个抽象概念,代表一连串连续动态的数据集合。它可以比喻成水流,数据如同水流般从源头流动到目标。在编程中,流提供了读取和...

    java io流 案例

    在Java IO中,缓冲流(Buffered Stream)被设计用来提高性能,通过在内部创建缓冲区来存储数据。BufferedInputStream和BufferedOutputStream是缓冲字节流的代表,而BufferedReader和BufferedWriter则是缓冲字符流的...

    Java IO流文档

    在Java中,输入输出流(简称IO流)是用来处理文件读写的核心技术之一。它主要包括两类:以字节为导向的流和以字符为导向的流。 ##### 1.1 以字节为导向的流 以字节为导向的流是指按照字节来进行数据读写的流,适用...

    JAVA中的IO流简介

    在Java编程语言中,输入/输出(Input/Output,简称IO)流是处理数据传输的核心概念,用于在程序与外部设备、文件系统或其他程序之间进行数据交换。Java提供了丰富的IO流类库,使得数据的读写操作变得既灵活又强大。...

    JavaIO流详细总结

    Java IO流是Java编程语言中处理输入和输出的重要机制,它允许程序与各种类型的输入源(如键盘、文件、网络连接)以及输出目标(如显示器、文件、网络)进行交互。在Java中,I/O流被设计为面向对象,使得处理数据变得...

    java之io流实例

    Java中的IO流是Java语言处理输入输出操作的重要组成部分,它为数据传输提供了强大的支持。本文将深入探讨Java的IO流实例应用,旨在帮助开发者更好地理解和掌握这一关键概念。 IO流在Java中分为两大类:字符流...

    java IO流详细笔记

    Java IO流详解

    Java_IO流详解

    Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在项目开发中,IO 是非常基础的部分,在面试当中经常出现。对于初学者而言,IO 部分是容易忽略的内容,求职者一定要掌握该...

Global site tag (gtag.js) - Google Analytics