`

Java IO常用对象

    博客分类:
  • JAVA
 
阅读更多

 

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知识点

    本文将深入探讨Java IO的基本概念、分类、选择流的策略以及常用的流类型。 首先,File类是Java IO的基础,它可以表示文件或目录。通过File对象,我们可以执行一系列操作,如检查文件或目录的存在(exists())、判断...

    Java IO处理类的汇总

    本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、流的概念及分类,以及实际编程中的应用。 首先,Java IO体系基于流(Stream)的概念,流是数据的序列,可以是从输入源读取或向输出目标写入。Java IO提供...

    Java IO 编程集合

    6. 文件复制:在Java中,常用FileInputStream和FileOutputStream配合使用实现文件的复制。也可以利用NIO的Files.copy方法,或者使用PipedReader和PipedWriter进行管道传输。 七、追加写入 7. FileOutputStream的...

    常用java IO操作以及用jxl读写excel 工具源代码

    Java IO操作是Java编程中非常基础且重要的部分,它提供了对输入输出流的处理,使得程序能够与外部设备(如硬盘、网络、键盘、显示器等)进行数据交换。本工具结合了Java IO操作和JXL库,实现了读取Excel文件并进行...

    JAVA IO流技术

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

    java io最简java io

    在这个主题中,我们将深入探讨Java IO的基本概念、核心类以及常用的操作。 1. **基本概念** - **流(Stream)**: Java IO基于流的概念,流是数据的序列,可以是字节流或字符流,用于读取或写入数据。 - **节点流...

    java零基础自学 之 JavaIO流处理

    总的来说,Java IO流处理提供了丰富的类和方法,使得我们可以方便地处理各种数据输入输出任务,无论是文本、二进制文件,还是网络通信、对象序列化,甚至是线程间的数据传递。理解并熟练掌握这些基础知识,对于提升...

    java IO流学习笔记

    在Java中,`java.io.File`类用于封装文件路径,可以用来创建文件对象,并且提供了许多与文件和目录交互的方法。 - 创建File对象: ```java File file = new File("a.txt"); ``` - 常用方法介绍: - `...

    java IO文档.docx

    以下是一些常用的Java IO流类示例: - `FileInputStream`和`FileOutputStream`用于从文件读写数据。 - `DataInputStream`和`DataOutputStream`提供了读写基本数据类型(如int、double)的便捷方法。 - `...

    javaIO流知识大总结

    在这个大总结中,我们将深入探讨Java IO流的基本概念、分类、常用类以及实践应用。 1. **基本概念** - **流(Stream)**:在Java中,流是一个抽象的概念,代表数据的有序序列。它可以是字节流或字符流,流向可以是...

    Java IO流 总结

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

    Java中文件IO流.pdf

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

    javaIO流笔记

    本篇详细介绍了Java中`File`类的基本用法及其相关的常用操作,包括文件和目录的创建、删除以及路径分隔符的使用。通过具体的示例代码加深了对`File`类的理解。这对于理解Java文件系统操作至关重要。

    目录多文件上传-JAVA IO流常用详解

    ### 目录多文件上传-JAVA IO流常用详解 #### 概述 本文将详细介绍一个Java程序中的功能模块——如何实现目录多文件上传,并利用Java IO流进行文件复制操作。该功能可以实现在用户选择一个目录后,自动扫描并上传该...

    java io流PPT课件.pptx

    本章节将深入探讨Java IO流的基本原理、分类以及常用类。 首先,让我们了解什么是流。在计算机科学中,"流"是一个流动的数据缓冲区,它允许数据从源头流向目的地。在Java中,流被用于实现程序与外部设备、文件、...

    Java IO commons-io-2.5.jar

    Java IO 是Java编程语言中处理输入/输出流的重要部分,它是连接程序与外部世界的桥梁,允许数据在程序和外部资源之间流动。`commons-io-2.5.jar` 是Apache Commons项目的一部分,它提供了一系列增强和扩展了Java标准...

    Java基础篇:IO流.pdf

    本知识点将深入探讨Java IO流的相关细节,包括节点流与处理流的概念,以及文件流、标准输入输出流、缓冲流、转换流、打印流、数据流和对象流的处理过程和使用方法。 首先,Java中的IO流根据数据流向可以分为输入流...

    Java-Io流,练习

    在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO流的概念 IO流在Java中分为两大类:输入流(Input Stream)和输出流(Output ...

Global site tag (gtag.js) - Google Analytics