- 浏览: 433405 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
springaop_springmvc:
apache lucene开源框架demo使用实例教程源代码下 ...
Java搜索工具——Lucene实例总结(一) -
chengang292214:
总结的不错
Web开发中的路径问题 -
liuyuanhui0301:
aka~
Java 归并排序(基于数组) -
IT人_:
不错
远程连接MySQL,防火墙阻止访问,解决办法 -
zhuchao_ko:
借鉴。
JNDI访问LDAP
自学习Java IO以来,认为难倒是不难,就是比较繁杂,各种方式操作的IO类多如麻,每次使用,都不得不花费大把时间网上溜达一圈,才能完成手头任务。按说,像这些常用的IO操作,对于Java程序员来说,应该达到信手拈来,拿来就用的熟练程度。但我就是记也不住哇,究其原因,就是对Java IO的整体结构不甚了解。结构含糊,就不容易记忆。为了以后方便,于是有了整理一下Java IO的想法,打算简明易懂的记录Java IO的各种分门别类,争取理清思路,常回来看看,印记于脑海,再用时再也不必花费大量时间。不想从2010年2月3日创建该笔记始,一直拖到今天2011-07-13才算有了眉目,但是还不够完整,需要后期继续补充。
另, 总结代码形成的工具类请参见 文件操作工具类
一、基本概念
1. 概述
使用IO时,首先创建一个数据源IO,然后根据需要,创建装饰类IO。Java IO 相关的类总结如下表:
字节流 | 字符流 | ||||
|
输入
|
输出
|
输入
|
输出
|
|
数据源IO | |||||
1 | FileInputStream | FileOutputStream | FileReader | FileWriter | |
2 | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter | |
3 | StringBufferInputStream |
|
StringReader | StringWriter | |
4 | SequenceInputStream | SequenceOutputStream |
|
|
|
5 | PipedInputStream | PipedOutputStream | PipedReader | PipedWriter | |
6 | System.in |
|
|
|
|
装饰类IO | |||||
7 | DataInputStream | DataOutputStream |
|
|
|
8 | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter | |
9 | LineNumberInputStream |
|
LineNumberReader | ||
10 | 产生格式化输出PrintStream | 产生格式化输出PrintWriter | |||
11 | PushbackInputStream 一般用于编译器开发 | PushBackReader |
说明:
2. Java IO的使用原则
决定使用哪个类以及它的构造进程的一般准则如下(不考虑特殊需要)
第一,考虑最原始的数据格式是什么:是否为文本?
第二,是输入还是输出?
第三,是否需要转换流:InputStreamReader, OutputStreamWriter?
第四,数据来源(去向)是什么:文件?内存?网络?
第五,是否要缓冲:bufferedReader (特别注明:一定要注意的是readLine()是否有定义,有什么比read, write更特殊的输入或输出方法)
第六,是否要格式化输出:print?
(1) 按数据来源(去向)分类
- 是文件: FileInputStream, FileOutputStream, FileReader, FileWriter
- 是byte[]:ByteArrayInputStream, ByteArrayOutputStream
- 是Char[]: CharArrayReader, CharArrayWriter
- 是String: StringBufferInputStream, StringReader, StringWriter
- 网络数据流:InputStream, OutputStream, Reader, Writer
(2) 按是否格式化输出分
- 要格式化输出:PrintStream, PrintWriter
(3) 按是否要缓冲分
- 要缓冲:BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter
(4) 按数据格式分
- 二进制格式(只要不能确定是纯文本的): InputStream, OutputStream及其所有带Stream结束的子类
- 纯文本格式(含纯英文与汉字或其他编码方式);Reader, Writer及其所有带Reader, Writer的子类
(5) 按输入输出分
- 输入:Reader, InputStream类型的子类
- 输出:Writer, OutputStream类型的子类
(6) 特殊需要
- 从Stream到Reader,Writer的转换类:InputStreamReader, OutputStreamWriter
- 对象输入输出:ObjectInputStream, ObjectOutputStream
- 进程间通信:PipeInputStream, PipeOutputStream, PipeReader, PipeWriter
- 合并输入:SequenceInputStream
- 更特殊的需要:PushbackInputStream, PushbackReader, LineNumberInputStream, LineNumberReader
二、 例子代码
1.文件操作
(1) 从文件读
- 字节流
FileInputStream 的read方法
: throws IOException
int read()读取单个字节
int read(byte[] b)从输入流中将最多 b.length 个字节的数据读入到 byte 数组中
b - 存储读取数据的缓冲区。
返回:读入缓冲区的字节总数,如果到达文件末尾而没有更多的数据,返回 -1
int read(byte[] b, int off,int len)读取len个字节到字节数组b中的指定位置
b - 目标缓冲区。
off - 开始存储字节处的偏移量。
len - 要读取的最大字节数。
//1. 以字节为单位读取文件内容,一次读一个字节 FileInputStream in = new FileInputStream(file); int temp; while ((temp = in.read()) != -1) {//将读取的字节赋值给temp System.out.write(temp); } in.close(); //2. 以字节为单位读取文件内容,一次读多个字节 int byteread = 0; FileInputStream in = new FileInputStream(fileName); byte[] tempbytes = new byte[in.available()];// 一次读多个字节 // 读入多个字节到字节数组中,byteread为一次读入的字节数 while ((byteread = in.read(tempbytes)) != -1) { // String s=new String(tempbytes,"UTF-8"); System.out.write(tempbytes, 0, byteread); }
//3. 带缓冲的读文件 BufferedInputStream 只有read方法,没有readLine方法
BufferedInputStream的read方法
:throws IOException
int read()读取单个字节
int read(byte[] b)从输入流中将最多 b.length 个字节的数据读入到 byte 数组中
b - 存储读取数据的缓冲区。
返回:读入缓冲区的字节总数,如果到达文件末尾而没有更多的数据,返回 -1
int read(byte[] b, int off,int len)读取len个字节到字节数组b中的指定位置
b - 目标缓冲区。
off - 开始存储字节处的偏移量。
len - 要读取的最大字节数。
byte[] data = new byte[10]; BufferedInputStream bis = new BufferedInputStream( new FileInputStream("C:\\readFile.txt")); BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream("C:\\saveFile.txt")); while (bis .read(data) != -1) bos.write(data); // 将缓冲区中的资料全部写出 bos.flush();
- 字符流
FileReader的read方法:
int read()读取单个字节
int read(byte[] b)从输入流中将最多 b.length 个字节的数据读入到 byte 数组中
b - 存储读取数据的缓冲区。
返回:读入缓冲区的字节总数,如果到达文件末尾而没有更多的数据,返回 -1
int read(byte[] b, int off,int len)读取len个字节到字节数组b中的指定位置
b - 目标缓冲区。
off - 开始存储字节处的偏移量。
len - 要读取的最大字节数。
//1.一次读多个字符 read(byte[] b) char data[] = new char[10];//建立可容纳10个字符的数组 FileReader fr = new FileReader("algorithms.xml"); int num = fr.read(data);// 将数据读入字符列表data内 String str = new String(data, 0, num);// 将字符列表转换成字符串 fr.close(); //2.一次读多个字符 read(byte[] b, int off,int len) File fileName=new File("d:\\temp\\save.txt"); char data[] = new char[(int)fileName.length()];//根据文件长度建立数组 FileReader fr = new FileReader(fileName); int num = fr.read(data,4,6);//从文件中读6个字符放到data数组中,起始位置为data[4] //返回值num为从文件中读取字符的长度,即6 String str = new String(data, 0, num);// 将字符列表转换成字符串 fr.close();
//3. 带缓冲的读文件
BufferedReader的read方法:
增加了一个readLine()
方法throws IOException
int read() 读取单个字符。
int read(char[] cbuf, int off, int len) 将字符读入数组的某一部分。
cbuf - 目标缓冲区
off - 开始存储字符处的偏移量
len - 要读取的最大字符数
String readLine() 读取一个文本行。
//以行为单位从一个文件读取数据, BufferedReader 有read方法和readLine方法 BufferedReader in = new BufferedReader( new FileReader("F:\\TestIO.java")); String s=null; while((s = in.readLine()) != null) { s+="\n"; System.out.print(s); } in.close();
(2) 写文件
- 字节流
FileOutputStream的write方法: throws IOException
void write(int b)将指定字节b写入文件
b - 要写入的字节
void write(byte[] b)将b.length 个字节从指定 byte 数组写入此文件输出流中
void write(byte[] b,int off,int len)将byte数组中从偏移off开始的len个字节写入文件输出流
b - 数据
off - 数据中的起始偏移量
len - 要写入的字节数
//1. 不带缓冲的写文件 byte b[]=new byte[512]; int count=System.in.read(b); //从键盘读取一行字符(写一个读一个,最大读取512个,回车读取结束),存储到缓冲区 boolean a = true;//true表示追加,false表示覆盖 FileOutputStream fos = new FileOutputStream("C:\\saveFile.txt", a); fos.write(b);//把缓冲区b的内容写到指定的文件中 fos.close();
//2. 带缓冲的写文件 见文件操作(读)
BufferedOutputStream的方法:
throws IOException
void write(int b)将指定字节b写入文件
b - 要写入的字节
void write(byte[] b)将b.length 个字节从指定 byte 数组写入此文件输出流中
void write(byte[] b,int off,int len)将byte数组中从偏移off开始的len个字节写入文件输出流
b - 数据
off - 数据中的起始偏移量
len - 要写入的字节数
void flush()刷新此缓冲的输出流,迫使所有缓冲的输出字节被写出到底层输出流中
- 字符流
//1. 不带缓冲的写文件
FileWriter的write方法:
throws IOException
void write(int b)将指定字节b写入文件
b - 要写入的字节
void write(byte[] b)将b.length 个字节从指定 byte 数组写入此文件输出流中
void write(byte[] b,int off,int len)将byte数组中从偏移off开始的len个字节写入文件输出流
b - 数据
off - 数据中的起始偏移量
len - 要写入的字节数
FileReader fr = null; FileWriter fw = null; int bi; fr = new FileReader("d:\\temp\\read.txt"); fw = new FileWriter("d:\\temp\\save1.txt"); while ((bi = fr.read()) != -1) { fw.write(bi);//一次读一个字符(一个汉字字符占两个字节,一个英文字符占一个字节) } fr.close(); fw.close();
//2. 带缓冲的写文件
BufferedWriter的方法:
throws IOException
void write(char[] cbuf, int off, int len) 写入字符数组的某一部分。
void write(int c) 写入单个字符。
void write(String s, int off, int len) 写入字符串的某一部分
s - 要写入的字符串
off - 开始读取字符处的偏移量
len - 要写入的字符数
void newLine() 写入一个行分隔符。行分隔符字符串由系统属性 line.separator 定义,并且不一定是单个新行 ('\n') 符
void flush()刷新此缓冲的输出流,迫使所有缓冲的输出字节被写出到底层输出流中
public class BufferedReaderWriterDemo { public static void main(String[] args) { try { // 缓冲System.in输入流 // System.in是位流,可以通过InputStreamReader将其转换为字符流 BufferedReader bufReader = new BufferedReader( new InputStreamReader(System.in)); // 缓冲FileWriter BufferedWriter bufWriter = new BufferedWriter(new FileWriter( "F:\\saveFile.txt")); String input = null; // 每读一行进行一次写入动作 while (!(input = bufReader.readLine()).equals("quit")) { bufWriter.write(input); // newLine()方法写入与操作系统相依的换行字符,依执行环境当时的OS来决定该输出那种换行字符 bufWriter.newLine(); } bufReader.close(); bufWriter.close(); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("没有指定文件"); } catch (IOException e) { e.printStackTrace(); } } }
2. 内存读写
ByteArrayInputStream和ByteArrayOutputStream是将位数组当作流输入来源、输出目的地的类。
CharArrayReader和CharArrayWriter将字符数组当作字符数据输入输出的来源和目的
ByteArrayInputStream的方法:
throws IOException
构造函数:ByteArrayInputStream(byte[] buf)
创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。
ByteArrayInputStream(byte[] buf, int offset, int length)
创建 ByteArrayInputStream,使用 buf 作为其缓冲区数组。
buf - 输入缓冲区。
offset - 缓冲区中要读取的第一个字节的偏移量。
length - 从缓冲区中读取的最大字节数。
int read()读取单个字节
int read(byte[] b)从输入流中将最多 b.length 个字节的数据读入到 byte 数组中
b - 存储读取数据的缓冲区。
返回:读入缓冲区的字节总数,如果到达文件末尾而没有更多的数据,返回 -1
int read(byte[] b, int off,int len)读取len个字节到字节数组b中的指定位置
b - 目标缓冲区。
off - 开始存储字节处的偏移量。
len - 要读取的最大字节数。
ByteArrayOutputStream的方法:
byte[] toByteArray()
创建一个新的 byte 数组,大小是此输出流的当前大小,并且缓冲区的有效内容已复制到该数组中。
String toString() 使用平台默认的字符集,通过解码字节将缓冲区内容转换为字符串。
String toString(String charsetName)
使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串。
void write(byte[] b, int off, int len)
将byte数组中从偏移量off开始的len个字节写入此byte数组输出流。
b - 数据。
off - 数据的初始偏移量。
len - 要写入的字节数。
void write(int b) 将指定的字节写入此 byte 数组输出流。
void writeTo(OutputStream out) 将此 byte 数组输出流的全部内容写入到指定的输出流参数中。
public class ByteArrayStreamDemo { public static void main(String[] args) { try { BufferedInputStream bufInputStream = new BufferedInputStream( new FileInputStream("F:\\read.txt")); ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream(); byte[] bytes = new byte[1]; // 将文件内容写入位数组流 while (bufInputStream.read(bytes) != -1) { arrayOutputStream.write(bytes); } arrayOutputStream.close(); bufInputStream.close(); // toByteArray()方法,以字符方式显示位数组内容 bytes = arrayOutputStream.toByteArray(); for (int i = 0; i < bytes.length; i++) { System.out.print((char) bytes[i]); } //toString()方法 System.out.println(arrayOutputStream.toString()); // writeTo方法 //写到控制台输出流(能直接输出) arrayOutputStream.writeTo(System.out); FileOutputStream fo=new FileOutputStream("F:\\saveFile.txt",true); //写到文件输出流,能直接输出 arrayOutputStream.writeTo(fo); // 让使用者输入位置与字符修改位数组内容 Scanner scanner = new Scanner(System.in); System.out.print("请输入修改位置:"); int pos = scanner.nextInt(); System.out.println("输入修改字符"); // 修改数组中对应的字符 bytes[pos - 1] = (byte) scanner.next().charAt(0); // 将位数组内容存回文件 ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream( bytes); // 参数是数组 BufferedOutputStream bufOutputStream = new BufferedOutputStream( new FileOutputStream("F:\\read.txt")); byte[] tmp = new byte[1]; while (byteArrayInputStream.read(tmp) != -1)//从字节数组中读取数据 bufOutputStream.write(tmp); byteArrayInputStream.close(); bufOutputStream.flush(); bufOutputStream.close(); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("请指定文件名称"); } catch (IOException e) { e.printStackTrace(); } } }
CharArrayReader的方法:
构造函数:CharArrayReader(char[] buf)创建一个 CharArrayReader,使用 buf 作为其缓冲区数组。
CharArrayReader (char[] buf, int offset, int length)
创建 CharArrayReader,使用 buf 作为其缓冲区数组。
buf - 输入缓冲区。
offset - 缓冲区中要读取的第一个char的偏移量。
length - 从缓冲区中读取的最字符数。
int read()读取单个字符
int read(char[] c)将最多 c.length 个字符读入到 char 数组中
c - 存储读取数据的缓冲区。
返回:读取的实际字符数;如果到达流末尾,则返回 -1
int read(char[] c, int off,int len)读取len个字节到字节数组b中的指定位置
c - 目标缓冲区。
off - 开始存储字符的偏移量。
len - 要读取的最大字符数。
CharArrayWriter的方法:
char[] toCharArray() 返回输入数据的副本。
String toString() 将输入的数据转换为字符串。
void write(char[] b, int off, int len)
将char数组中从偏移量off开始的len个字节写入此CharArrayWriter数组输出。
c - 数据。
off - 数据的初始偏移量。
len - 要写入的字符数。
void write(String str, int off, int len) 将字符串的某一部分写入缓冲区。
str -要写入的字符串。
off - 数据的初始偏移量。
len - 要写入的字符数。
void write(int b) 将一个字符写入缓冲区。
void writeTo(Writer out) 将缓冲区的内容写入另一个字符流。
public class CharArrayReaderWriterDemo { public static void main(String[] args) { try { BufferedReader bufInputReader = new BufferedReader(new FileReader( "F:\\read.txt")); CharArrayWriter charArrayWriter = new CharArrayWriter(); char[] array = new char[1]; // 将文件读入字符数组 while (bufInputReader.read(array) != -1) { charArrayWriter.write(array); } charArrayWriter.close(); bufInputReader.close(); // toCharArray()方法 显示字符内容 array = charArrayWriter.toCharArray(); for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } //toString()方法 System.out.println(charArrayWriter.toString()); // writeTo方法 写到文件输出流,能直接输出 FileWriter fw=new FileWriter("F:\\saveFile.txt"); charArrayWriter.writeTo(fw); fw.close(); // 将字符数组内容存回文件 CharArrayReader charArrayReader = new CharArrayReader(array); BufferedWriter bufWriter = new BufferedWriter(new FileWriter("F:\\read.txt")); char[] tmp = new char[1]; while (charArrayReader.read(tmp) != -1) { bufWriter.write(tmp); } charArrayReader.close(); bufWriter.flush(); bufWriter.close(); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("请指定文件名!"); } catch (IOException e) { e.printStackTrace(); } } }
3. 其它
InputStreamReader 和 OutputStreamWriter,用于字节流与字符流之间的转换
InputStreamReader从一个数据源读取字节,并自动将其转换成Unicode字符,除非特别声明
OutputStreamWriter将字符的Unicode编码写到输出流,如果你的使用的不是Unicode字符,OutputStreamWriter会将你的字符编码转换成Unicode编码。
在InputStreamReader和OutputStreamWriter的结尾链接一个BufferedReader和BufferedWriter是一个好主意。记住对BufferedWriter使用flush()方法。
// 读写文件的编码:
InputStreamReader r = new InputStreamReader(new FileInputStream(fileName), "utf-8");
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(fileName),"utf-8");
发表评论
-
Test
2014-07-11 15:51 764insert into CMLGPLGP (CMLGP_L ... -
C/C++调用Java代码 创建对象、字符串操作
2011-12-01 16:08 3684back>> 1. java对象的创建的步骤 ... -
JNI(C/C++调用Java父类/子类方法)
2011-11-30 21:56 8279back>> 1. C/C++调用Java函 ... -
C/C++调用Java代码(属性和方法)
2011-11-30 10:48 9365back>> 1. JNIEnv对象 ... -
JNI(Java调用C/C++代码)
2011-11-30 10:46 8472back>> 1. 首先在Java类中声明一 ... -
JNI(Java Native Interface)
2011-11-30 10:12 12881. 基本概念 - Java是跨平台的语言, ... -
JNDI访问LDAP
2011-11-27 11:52 35061. 搭建了ldap服务器 - 下载ope ... -
JNDI
2011-11-27 11:22 21961. 基本概念 (参考 ) jndi ... -
Java 文件锁技术
2011-08-06 09:39 2232IRIP项目中,Agent每分钟都要向Director ... -
Java IO(文件操作工具类)
2011-07-13 18:30 4558去Java IO >> FileOperate实 ... -
XML解析(SAX解析)
2011-05-19 21:07 10831. SAX的基本原理及常用的接口 * Si ... -
java里抽象类和接口的区别
2011-03-05 23:31 810下面的这篇文章讲 ... -
Java 多线程(三)--正确理解ThreadLocal
2011-03-03 18:04 1409转自:http://www.iteye.com/topic/1 ... -
Callable 与 Runnable 的区别
2011-03-03 17:56 3262转自:http://blog.sina.com.cn/s/bl ... -
Java 多线程(二)
2011-03-03 16:21 2062并发 Table of Contents ... -
Java编码规范
2011-02-15 11:10 16261.Eclipse配置 (1) 导入o ... -
Java搜索工具——Lucene实例总结(一)
2010-12-22 21:42 17940参考网页:http://footman265.itey ... -
Java 集合--Map、HashMap、HashTable、TreeMap
2010-12-14 14:20 100951. Map基础 Map接口提供3种集 ... -
JMS在Spring框架下的应用
2010-12-07 23:51 13212上传通讯薄操作, ... -
页面自动跳转代码
2010-11-09 15:11 16251. 在body中使用onload属性 &l ...
相关推荐
Java IO应届生培训讲义是一份面向刚毕业的大学生进行Java IO相关知识的培训资料,它涵盖了Java IO的基础知识、不同的IO模型以及Java中的BIO、NIO和AIO高级IO类库。下面详细解释这些知识点: 1. 用户空间和内核空间 ...
Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的重要部分,涉及文件、网络、内存等数据传输。本文将深入探讨Java IO的基本概念、分类、选择流的策略以及常用的流类型。 首先,File类是Java IO的...
java IO教程,java IO教程,java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程,java IO教程,java IO教程,java IO...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了一整套类库,使得开发者能够有效地读取和写入数据到不同的源和目标,如文件、网络、内存缓冲区等。Java IO体系结构设计得...
Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的基础框架,它提供了丰富的类库,使得程序能够与各种设备、文件、网络进行数据交互。然而,传统的IO模型在处理大量并发连接时表现出效率较低的问题,...
《Java IO.chm》是一个关于Java输入/输出(IO)技术的压缩文件,其中包含了丰富的资料,适合开发者深入理解和学习Java IO系统。这篇详细的总结将围绕Java IO体系结构、核心类、流的概念、缓冲区、转换流、字符集、...
Java IO 详解 Java IO(Input/Output)是 Java 语言中用于处理输入输出操作的类库,提供了大量的类和方法来实现文件、网络、字节流等方面的输入输出操作。下面对 Java IO 中的重要知识点进行详细说明。 一、File ...
Java IO处理类是Java平台中用于输入输出操作的核心部分,它允许程序与各种类型的输入源(如文件、网络连接)以及输出目标(如显示器、打印机)进行交互。本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、...
Java IO编程是Java平台中处理输入输出操作的重要组成部分,它提供了丰富的类库,使得开发者能够高效地进行数据的读取、写入、流的管理和转换。在这个集合中,我们主要探讨的是Java IO在文件读写方面的实践应用。 一...
Java IO流技术是Java平台中用于处理输入输出的重要机制,其核心在于数据的传输,从数据源到程序或从程序到目的地。在Java中,流分为两大类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)。输入流...
在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,允许程序员在程序之间传输数据,包括从文件、网络、内存缓冲区到其他程序或系统组件。Java IO API是Java平台的...
JavaIO流详解归纳 Java 的核心库 java.io 提供了全面的 IO 接口,包括文件读写、标准设备输出等。Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在项目开发中,IO 是非常...
Java IO操作是Java编程中的重要组成部分,主要用于处理输入和输出数据。在Java中,IO操作涉及到文件、字节流、字符流以及管道流等多个概念。下面将详细解释这些知识点。 首先,我们来看“文件类”。在Java中,`java...
Java IO 与 装饰模式 在Java编程中,输入输出(IO)处理是程序设计中的重要组成部分,用于读取、写入和处理数据。Java IO库提供了一整套类来支持各种类型的输入输出操作,包括文件、网络、内存等。而装饰模式是一种...
2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
Java IO流是Java平台中的重要组成部分,用于处理输入和输出操作。它允许程序与外部设备如硬盘、网络、内存等进行数据传输。IO流的概念基于流(Stream)模型,数据以字节或字符序列的形式流动。Java IO库提供了丰富的...
Java IO流是Java编程语言中处理输入输出操作的重要部分,尤其在数据传输、文件读写等方面发挥着核心作用。本文将深入探讨Java IO流的基本概念、类型以及它们在实际开发中的应用。 首先,理解IO流的基本概念至关重要...
Java IO(Input/Output)是Java平台中处理输入与输出数据的核心部分,它提供了丰富的类库,使得开发者能够高效地进行文件、网络、内存以及其他I/O流的操作。本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在...