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文件。
相关推荐
Java 中的 IO 流详解 Java 中的 IO 流是指在 Java 语言中对输入输出操作的抽象,主要用于实现程序与外部设备和其他计算机之间的交流,尤其是对磁盘文件的操作。IO 流的概念是在 1984 年由 C 语言第一次引入的,后来...
Java 中文件 IO 流 Java 中文件 IO 流是指 Java 语言中对文件的输入输出操作,通过定义文件流来实现文件的读写操作。文件流是指在程序中用于文件输入输出的对象, Java 中提供了多种文件流类型,包括 InputStream ...
Java中的IO流是Java核心库的重要组成部分,它用于在不同数据源之间传输数据。Java IO流分为两大类:字符流(Character Stream)和字节流(Byte Stream)。字符流处理单个字符,而字节流处理8位的字节序列。它们又...
Java的IO流是Java编程语言中的重要组成部分,它主要用于数据的输入和输出操作。在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO...
Java中的IO流是Java平台核心特性之一,它用于在各种数据源之间传输数据,包括文件、设备、网络连接等。IO流分为输入流(Input Stream)和输出流(Output Stream),按照处理的数据类型又可以分为字节流和字符流。本...
java中的IO流,这个PPT可以帮助学习javaIO流的初学者很有帮助的
Java中的IO流是Java核心库java.io中的关键组成部分,它为程序提供了与外部资源交互的能力,包括文件读写、标准设备输入输出等。Java的IO流机制基于流的概念,流可以被视为数据传输的通道,数据按照序列化的方式从...
Java IO流是Java语言中最基本和最重要的输入/输出机制,负责将数据从外部世界输入到Java应用程序中或将数据从Java应用程序输出到外部世界。IO流可以分为两大类:字节流和字符流。 1. 节点流:离数据源|程序最近的流...
Java IO流是Java平台中用于处理输入/输出操作的核心组件,它允许程序与各种数据源(如文件、网络连接、内存缓冲区等)进行交互。Java IO流的精讲涵盖了许多概念和技术,包括流的分类、流的方向、缓冲区的使用、字符...
- **定义**:Channel类似于传统IO中的文件描述符,但它更灵活且支持双向通信。 - **作用**:Channel用于连接源和目的地,负责实际的数据传输。所有数据的读写操作都需要通过Channel和Buffer共同完成。 - **特点**...
Java流还可以分为节点流和过滤流。节点流是直接与文件或内存区域进行交互的流,而过滤流则是在节点流的基础上提供了额外的功能,如缓冲、字符编码转换等。 三、Java中IO流的操作示例 案例1:创建新文件 ```java ...
Java中的IO流是Java平台提供的一种处理输入输出数据的核心机制,广泛应用于文件读写、网络通信、数据转换等场景。IO流分为字节流(Byte Stream)和字符流(Character Stream),它们构成了Java IO系统的基础。 1. *...
在Java IO中,我们需要通过流对象与这些数据源进行交互。 2. 流的概念:流(Stream)是一个抽象概念,代表一连串连续动态的数据集合。它可以比喻成水流,数据如同水流般从源头流动到目标。在编程中,流提供了读取和...
在Java IO中,缓冲流(Buffered Stream)被设计用来提高性能,通过在内部创建缓冲区来存储数据。BufferedInputStream和BufferedOutputStream是缓冲字节流的代表,而BufferedReader和BufferedWriter则是缓冲字符流的...
在Java中,输入输出流(简称IO流)是用来处理文件读写的核心技术之一。它主要包括两类:以字节为导向的流和以字符为导向的流。 ##### 1.1 以字节为导向的流 以字节为导向的流是指按照字节来进行数据读写的流,适用...
在Java编程语言中,输入/输出(Input/Output,简称IO)流是处理数据传输的核心概念,用于在程序与外部设备、文件系统或其他程序之间进行数据交换。Java提供了丰富的IO流类库,使得数据的读写操作变得既灵活又强大。...
Java IO流是Java编程语言中处理输入和输出的重要机制,它允许程序与各种类型的输入源(如键盘、文件、网络连接)以及输出目标(如显示器、文件、网络)进行交互。在Java中,I/O流被设计为面向对象,使得处理数据变得...
Java中的IO流是Java语言处理输入输出操作的重要组成部分,它为数据传输提供了强大的支持。本文将深入探讨Java的IO流实例应用,旨在帮助开发者更好地理解和掌握这一关键概念。 IO流在Java中分为两大类:字符流...
Java IO流详解
Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在项目开发中,IO 是非常基础的部分,在面试当中经常出现。对于初学者而言,IO 部分是容易忽略的内容,求职者一定要掌握该...