`

java需要关注的知识点---IO流

IO 
阅读更多
1.无论何时使用readLine().都不应该使用DataInputStream,而应该使用BufferedReader.
2.RandomAccessFile,只有RandomAccessFile支持搜索操作,并且只适用于文件。
到jdk1.4中,它的大部分功能被nio存储映射文件所取代。
3.读文件的几种方式:
缓冲输入文件
public class BufferedInputFile {
	public static String read(String file) throws IOException{
		StringBuffer sb = new StringBuffer();
		FileReader fileReader = new FileReader(file);
		BufferedReader br = new BufferedReader(fileReader);
		String s = null;
		while((s = br.readLine()) != null) {
			sb.append(s + "\n");
		}
		return sb.toString();
		
	}
	public static void main(String[] args) {
		try {
			System.out.println(read("D:\\RSA75WP\\test\\src\\com\\io\\BufferedInputFile.java"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

从内存中输入:
public class MemoryInput {
	
	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		StringReader in = new StringReader(BufferedInputFile
				.read("D:\\RSA75WP\\test\\src\\com\\io\\MemoryInput.java"));
		int c;
		while((c = in.read()) != -1) {
			System.out.print((char)c);
		}
	}

}

格式化的内存输入:
public class FormattedMemoryInput {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		DataInputStream dis = new DataInputStream(
				new ByteArrayInputStream(
						(BufferedInputFile
								.read("D:\\RSA75WP\\test\\src\\com\\io\\FormattedMemoryInput.java")
								.getBytes())));
		try {
			while(true) {
				System.out.print((char)dis.readByte());
			}
		} catch (Exception e) {
			System.out.println("End of stream");
		}
	}
	

}

使用available的工作方式会随着所读取的媒介类型不同而有所不同,需要小心使用:
public class TestEof {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		DataInputStream in = new DataInputStream(new BufferedInputStream(
				new FileInputStream(
						"D:\\RSA75WP\\test\\src\\com\\io\\TestEof.java")));
		while (in.available() != 0) {
			System.out.println((char)in.readByte());
		}
	}

}

4.写文件:
DataOutputStream:
public class DateOutputStreamTest {
	public static void main(String[] args) throws IOException {
		DataOutputStream dops = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("Data.txt")));
		dops.writeDouble(3.32);
		dops.writeUTF("test outputStream");
		dops.writeInt(4);
		dops.close();
		DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream("Data.txt")));
		System.out.println(dis.readDouble());
		System.out.println(dis.readUTF());
		System.out.println(dis.readInt());
	}
}	
[b]

RandomAccessFile[/b]
public class UsingRandomAccessFile {
	static String fileNme = "rtest.dat";
	static void display() throws IOException{
		RandomAccessFile raf = new RandomAccessFile(fileNme, "r");
		for ( int i = 0; i< 7 ;i++) {
			System.out.println("Value:" + i + ":" + raf.readDouble());
		}
			System.out.println(raf.readUTF());
			raf.close();
		
	}
	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		RandomAccessFile rf = new RandomAccessFile(fileNme,"rw");
		for(int i = 0; i < 7; i++)
			rf.writeDouble(i*1.414);
		rf.writeUTF("this end of the file");
		rf.close();
		display();
		rf = new RandomAccessFile(fileNme,"rw");
		rf.seek(5*8);
		rf.writeDouble(47.0001);
		rf.close();
		display();
	}

}

读取二进制文件:
public class BinaryFile {
	public static byte[] read(File bFile) throws IOException {
		BufferedInputStream bf = new BufferedInputStream(new FileInputStream(bFile));
		try {
			byte[] data = new byte[bf.available()];
			bf.read(data);
			return data;
		}finally{
			bf.close();
		}
	}
	public static byte[] read(String fileName) throws IOException{
		return read(new File(fileName).getAbsoluteFile());
	}
}
分享到:
评论

相关推荐

    Java IO知识点

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

    Java知识点总结大全(五) -- IO流.xmind

    Java知识点总结大全(五) -- io流,关注后面会分享面向对象,io,集合,多线程,网络,sql的总结

    java+servlet+commons-io-2.4.jar+commons-fileupload-1.3.jar实现文件的上传与下载

    在Java Web开发中,文件的上传与下载是常见的功能需求,尤其在构建动态网站或Web应用程序时。本教程将深入讲解如何使用Java Servlet、Apache ...理解并熟练掌握这些知识点,对于开发高效、稳定的Web应用至关重要。

    commons-io-2.6.jar下载

    下面将详细介绍 `commons-io-2.6.jar` 中的关键知识点。 1. **基本文件操作**: - `FileUtils` 类提供了大量静态方法,用于文件的创建、删除、复制、移动和读写操作。例如,`copyFile()` 和 `moveFile()` 方法可以...

    commons-io-2.4 包含了所有commons-io的jar包和源码

    Apache Commons IO 是一个Java库,专注于提供各种I/O操作的实用工具类,这些操作包括文件、流、过滤器、读写、转换、检测等。在本案例中,我们讨论的是"commons-io-2.4"版本,这个版本包含了完整的Apache Commons IO...

    java需要关注的知识点---好的书本

    "java需要关注的知识点---好的书本"这一主题暗示了我们需要关注那些能帮助我们深入理解Java语言的资源。其中,标签"源码"和"工具"提醒我们不仅要关注理论,还要关注实际应用和开发工具。 首先,学习Java源码是理解...

    java io流-3.pdf

    ### Java I/O流知识点概述 #### 一、Java I/O流基础 - **I/O流的概念**:Java中的所有输入/输出(I/O)设施都基于流,它提供了一种简单的方式来读取和写入不同类型的文件数据。 - **四类主要流**:Java I/O系统...

    文档JAVA-IO流

    ### 文档JAVA-IO流 #### 一、IO流概述 1. **什么是IO** - I代表**输入**(input),O代表**输出**...通过上述知识点的学习,我们可以更好地理解和应用Java中的IO流技术,尤其是在处理文件读写以及文本处理方面。

    commons-io-2.8.0.rar

    以下是一些关键知识点: 1. **FileUtils**: 提供了大量静态方法来操作文件,如复制、移动、删除、比较、列举目录内容等。例如,`FileUtils.copyFile()` 和 `FileUtils.moveFile()` 方法分别用于复制和移动文件。 2...

    java-io-all-in-one.pdf

    标题《java-io-all-in-one.pdf》表明了...通过这些知识点,我们可以构建一个关于Java I/O和NIO操作的全面的知识体系,从而更高效地进行数据的输入和输出,以及在需要时使用异步和响应式编程模型来提升应用程序的性能。

    java基础之IO流

    ### Java IO流基础知识点 #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、...

    commons-io-2.6-bin.rar

    在Apache Commons IO 2.6中,有多个关键知识点值得深入理解: 1. **文件操作**:库提供了一系列方便的静态方法,用于创建、复制、移动、删除文件以及检查文件的存在性、属性等。例如,`FileUtils.copyFile()` 和 `...

    commons-io-2.2

    本文将深入探讨Apache Commons IO 2.2中的关键知识点,以及如何在实际项目中有效地利用这些功能。 1. **文件操作**:Apache Commons IO提供了大量用于文件操作的方法,如创建、删除、移动、复制文件和目录,以及...

    36个io流相关的知识点

    36个io流相关的知识点,36个io流相关的知识点,36个io流相关的知识点

    JAVA-快递管理系统-无数据库-IO

    在本项目"JAVA-快递管理系统-无数据库-IO"中,我们主要关注的是使用Java编程语言构建一个不依赖于数据库的快递管理应用。这个系统利用Java的输入/输出(IO)功能来处理数据,而非存储在关系型数据库中。下面将详细...

    commons-io-2.4.jar

    在"commons-io-2.4"这个版本中,我们能找到以下重要的知识点: 1. **FileUtils**: 这是Commons IO库的核心类之一,提供了大量的静态方法,用于执行各种文件操作。例如,`copyFile()`用于复制文件,`deleteQuietly()...

    编程语言java-io-decorator知识点.pdf

    在实际使用Java IO流时,有几个需要注意的事项: 1. 关闭流:每次使用完流后,都需要及时关闭,防止资源泄漏。 2. 使用try-with-resources:Java 7引入的try-with-resources语句可以自动关闭资源,避免忘记关闭流...

    java 基础-面向对象-线程-集合-IO流-网络 思维导图大全

    这几个思维导图详细的整理了相关知识点的总结,以尽可能详细全面的进行总结.

    JavaIO流详细总结

    通过以上知识点,我们可以更好地理解和运用Java的IO流系统,实现各种复杂的输入输出操作。对于初学者而言,理解这些基本概念并熟练掌握其使用方法是至关重要的。在实际编程中,根据需求选择合适的流类型和组合,可以...

    Java学习IO流小结--字符流

    #### 知识点概述 在Java中,处理文件和数据流是一项基本而重要的任务。IO流是Java语言中处理输入/输出的重要工具,它包括字节流和字符流两大类。本文将重点讨论字符流的相关概念及其用法。 #### 字符流简介 字符...

Global site tag (gtag.js) - Google Analytics