IO中常用对象
1.字节流
1.1
FileOutputStream fos = new FileOutputStream(getFile());
FileInputStream fis = new FileInputStream(getFile());
1.2
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath + "b.gif"), 1024);
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filePath + "a.gif"));
2.字符流
2.1
FileWriter fw = new FileWriter(getFile(), true);
FileReader fr = new FileReader(getFile());
2.2
BufferedWriter bw = new BufferedWriter(new FileWriter(getFile(), false), 1024);
BufferedReader br = new BufferedReader(new FileReader(getFile()), 1024);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(getFile())), 1024);
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(getFile())));
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(getFile())));
3.转换流(字节转字符)
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(getFile()));
InputStreamReader reader = new InputStreamReader(new FileInputStream(getFile()));
4.Properties
File file = new File(getFile());
Properties p = new Properties();
p.load(new FileReader(file));
Object obj = p.get("count");
p.setProperty("count", String.valueOf(count));
p.store(new FileWriter(file), "说明");
5.File
6.打印流
PrintStream
PrintWriter
7.管道流
PipedInputStream
PipedOutputStream
8.RandomAccessFile
// 生成一个文件,文件第一行保存文件路径名及文件记录的行数,逗号分隔,第一行不包括在内 // 随机生成指定个数,如果是偶数就保存到文件中并记录个数,第行保存一个数 // 最后更新文件中记录的行数 public void createFile() { String filePath = "e:/doc/data/abc.txt"; BufferedWriter writer = null; int max = 10000; int count = 0; try { writer = new BufferedWriter(new FileWriter(filePath)); writer.write(filePath); writer.write(",00000000"); writer.newLine(); Random random = new Random(); int value = 0; for (int i = 0; i < max; i++) { value = random.nextInt(1000000); if (value % 2 == 0) { writer.write(String.valueOf(value)); writer.newLine(); count++; } if (count % 100 == 0) { writer.flush(); } } } catch (IOException e) { e.printStackTrace(); } finally { if (writer != null) { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } if (count > 0) { updateFile(filePath, count); } } // 最后更新文件中记录的行数 private void updateFile(String filePath, int count) { RandomAccessFile accessFile = null; try { accessFile = new RandomAccessFile(filePath, "rw"); accessFile.writeBytes(filePath); accessFile.writeBytes(","); accessFile.writeBytes(String.format("%08d", count)); } catch (IOException e) { e.printStackTrace(); } finally { if (accessFile != null) { try { accessFile.close(); } catch (IOException e) { e.printStackTrace(); } } } } //直接用RandomAccessFile生成文件并修改 public void createFile2() { String filePath = "e:/doc/data/abc2.txt"; RandomAccessFile accessFile = null; int max = 10000; int count = 0; try { accessFile = new RandomAccessFile(filePath, "rw"); accessFile.writeBytes(filePath); accessFile.writeBytes(",00000000\r\n"); Random random = new Random(); int value = 0; for (int i = 0; i < max; i++) { value = random.nextInt(1000000); if (value % 2 == 0) { accessFile.writeBytes(String.valueOf(value)); accessFile.writeBytes("\r\n"); count++; } } accessFile.seek(0); accessFile.writeBytes(filePath); accessFile.writeBytes(","); accessFile.writeBytes(String.format("%08d", count)); } catch (IOException e) { e.printStackTrace(); } finally { if (accessFile != null) { try { accessFile.close(); } catch (IOException e) { e.printStackTrace(); } } } }
其中
accessFile.seek(0); accessFile.writeBytes(filePath); accessFile.writeBytes(","); accessFile.writeBytes(String.format("%08d", count));
可修改为
accessFile.seek(filePath.length() + 1); accessFile.writeBytes(String.format("%08d", count));
或
accessFile.seek(0); accessFile.skipBytes(filePath.length() + 1); accessFile.writeBytes(String.format("%08d", count));
9.序列流
可以将多个读取流合并成一个流
SequenceInputStream
10.对象的序列化
ObjectInputStream
ObjectOutputStream
11.操作基本数据类型的流对象
DataInputStream
DataOutputStream
12.操作数组的流对象
12.1操作字节数组
ByteArrayInputStream
ByteArrayOutputStream
12.2操作字符数组
CharArrayReader
CharArrayWriter
13.编码转换
本机编码
System.getProperty("file.encoding");
常见码表:
ASCII
ISO8859-1
GB2312
GBK
unicode
UTF-8
相关推荐
本文将深入探讨Java IO的基本概念、分类、选择流的策略以及常用的流类型。 首先,File类是Java IO的基础,它可以表示文件或目录。通过File对象,我们可以执行一系列操作,如检查文件或目录的存在(exists())、判断...
本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、流的概念及分类,以及实际编程中的应用。 首先,Java IO体系基于流(Stream)的概念,流是数据的序列,可以是从输入源读取或向输出目标写入。Java IO提供...
6. 文件复制:在Java中,常用FileInputStream和FileOutputStream配合使用实现文件的复制。也可以利用NIO的Files.copy方法,或者使用PipedReader和PipedWriter进行管道传输。 七、追加写入 7. FileOutputStream的...
Java IO操作是Java编程中非常基础且重要的部分,它提供了对输入输出流的处理,使得程序能够与外部设备(如硬盘、网络、键盘、显示器等)进行数据交换。本工具结合了Java IO操作和JXL库,实现了读取Excel文件并进行...
在Java IO中,我们需要通过流对象与这些数据源进行交互。 2. 流的概念:流(Stream)是一个抽象概念,代表一连串连续动态的数据集合。它可以比喻成水流,数据如同水流般从源头流动到目标。在编程中,流提供了读取和...
在这个主题中,我们将深入探讨Java IO的基本概念、核心类以及常用的操作。 1. **基本概念** - **流(Stream)**: Java IO基于流的概念,流是数据的序列,可以是字节流或字符流,用于读取或写入数据。 - **节点流...
总的来说,Java IO流处理提供了丰富的类和方法,使得我们可以方便地处理各种数据输入输出任务,无论是文本、二进制文件,还是网络通信、对象序列化,甚至是线程间的数据传递。理解并熟练掌握这些基础知识,对于提升...
在Java中,`java.io.File`类用于封装文件路径,可以用来创建文件对象,并且提供了许多与文件和目录交互的方法。 - 创建File对象: ```java File file = new File("a.txt"); ``` - 常用方法介绍: - `...
以下是一些常用的Java IO流类示例: - `FileInputStream`和`FileOutputStream`用于从文件读写数据。 - `DataInputStream`和`DataOutputStream`提供了读写基本数据类型(如int、double)的便捷方法。 - `...
在这个大总结中,我们将深入探讨Java IO流的基本概念、分类、常用类以及实践应用。 1. **基本概念** - **流(Stream)**:在Java中,流是一个抽象的概念,代表数据的有序序列。它可以是字节流或字符流,流向可以是...
Java IO流总结 Java IO流是Java语言中最基本和最重要的输入/输出机制,负责将数据从外部世界输入到Java应用程序中或将数据从Java应用程序输出到外部世界。IO流可以分为两大类:字节流和字符流。 1. 节点流:离数据...
Java 中文件 IO 流 Java 中文件 IO 流是指 Java 语言中对文件的输入输出操作,通过定义文件流来实现文件的读写操作。文件流是指在程序中用于文件输入输出的对象, Java 中提供了多种文件流类型,包括 InputStream ...
本篇详细介绍了Java中`File`类的基本用法及其相关的常用操作,包括文件和目录的创建、删除以及路径分隔符的使用。通过具体的示例代码加深了对`File`类的理解。这对于理解Java文件系统操作至关重要。
### 目录多文件上传-JAVA IO流常用详解 #### 概述 本文将详细介绍一个Java程序中的功能模块——如何实现目录多文件上传,并利用Java IO流进行文件复制操作。该功能可以实现在用户选择一个目录后,自动扫描并上传该...
本章节将深入探讨Java IO流的基本原理、分类以及常用类。 首先,让我们了解什么是流。在计算机科学中,"流"是一个流动的数据缓冲区,它允许数据从源头流向目的地。在Java中,流被用于实现程序与外部设备、文件、...
#### 常用的IO优化技巧 - **缓冲技术**:使用缓冲区减少磁盘或网络访问次数。 - **多线程并发**:利用多线程并发读写提高效率。 - **合理选择IO模型**:根据应用场景选择合适的IO模型(如阻塞、非阻塞、异步等)。 ...
Java IO 是Java编程语言中处理输入/输出流的重要部分,它是连接程序与外部世界的桥梁,允许数据在程序和外部资源之间流动。`commons-io-2.5.jar` 是Apache Commons项目的一部分,它提供了一系列增强和扩展了Java标准...
本知识点将深入探讨Java IO流的相关细节,包括节点流与处理流的概念,以及文件流、标准输入输出流、缓冲流、转换流、打印流、数据流和对象流的处理过程和使用方法。 首先,Java中的IO流根据数据流向可以分为输入流...
在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO流的概念 IO流在Java中分为两大类:输入流(Input Stream)和输出流(Output ...