`
wanghailiang333
  • 浏览: 199037 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论
阅读更多

Java中的文件输入输出操作比较麻烦,初学时很难理得清楚。

 

最近自己在看Java的书,想把自己理解的想法分享一下,也希望大家能指出哪里有理解不正确的地方。

 

在Java中文件的读取使用流的方式,分为:1)字节流;2)字符流。

 

还有一种比较方便的读取方式(Scanner),放在后边再说。

 

1、字节流的读取

 

import java.io.*;

public class BufferedByteType {

	public static void main(String[] args)  {
		/**
		 * 使用“字节流”的方式读取与写入文件
		 * 可用于处理图像数据等,非文本文件的数据
		 * 基础是:InputStream & OutputStream
		 */
		try{
			File fin = new File("E:/in.bmp");//输入图像数据
			FileInputStream fis = new FileInputStream(fin); //以字节流的方式读取文件,不带缓冲区
			BufferedInputStream bis = new BufferedInputStream(fis);//使用缓冲读取文件字节流
			
			File fout = new File("E:/out.bmp");//输出图像数据
			FileOutputStream fos = new FileOutputStream(fout);//以字节流的方式写入文件,不带缓冲区
			BufferedOutputStream bos = new BufferedOutputStream(fos);//使用缓冲写入文件字节流
			
			byte[] buf = new byte[128];  //每次最多读取128个字节,在运用中会很大
			
			for(int len = bis.read(buf, 0, buf.length) ;  //初始读取文件
				len != -1 ;  //文件读取结束,返回-1
				len = bis.read(buf, 0, buf.length)  //读取文件的下一区域
			){
				bos.write(buf, 0, len);  //写入文件,注意这里的长度是len,而不是buf.length
			}
			
			//关闭操作
			bis.close();
			bos.close();
			
		}catch(IOException e){
			e.printStackTrace();
			System.exit(0);
		}
	}
}
 

 

2、字符流的读取

 

import java.io.*;

public class BufferedCharType {

	public static void main(String[] args) {
		/**
		 * 使用“字符流”的方式读取与写入文件
		 * 可用于处理文本文件数据
		 * ps:若用来处理图像等非文本文件数据时,会有很多问题,应使用字节流的方式
		 * 基础是:Reader & Writer
		 */
		try{
			File fin = new File("E:/in.txt");//输入文本文件
			FileReader fr = new FileReader(fin); //以字符流的方式读取文件,不带缓冲区
			BufferedReader br = new BufferedReader(fr);//使用缓冲读取文件字节流
			
			File fout = new File("E:/out.txt");//输出文本文件
			FileWriter fw = new FileWriter(fout);//以字符流的方式写入文件,不带缓冲区
			BufferedWriter bw = new BufferedWriter(fw);//使用缓冲写入文件字符流
			
			char[] buf = new char[3];  //每次最多读取3个字符,在运用中会很大
			
			for(int len = br.read(buf, 0, buf.length) ;  //初始读取文件
				len != -1 ;  //文件读取结束,返回-1
				len = br.read(buf, 0, buf.length)  //读取文件的下一区域
			){
				bw.write(buf, 0, len);  //写入文件,注意这里的长度是len,而不是buf.length
			}
			
			//关闭操作
			br.close();
			bw.close();
			
		}catch(IOException e){
			e.printStackTrace();
			System.exit(0);
		}
	}
}


/**
 * 测试文件 in.txt
 * 
 * 1 2 3
 * 4 5
 * 6
 * 7
 * 8 9
 * abc de f
 * gh i
 * j
 * k
 * l
 * m n p
 * 
 * 输出文件 out.txt
 * 
 * 1 2 3
 * 4 5
 * 6
 * 7
 * 8 9
 * abc de f
 * gh i
 * j
 * k
 * l
 * m n p
 * 
 */
 

 

3、使用Scanner读取

 

使用Scanner可以很很方便的从文件或键盘读入数据,使用很简单

 

import java.io.*;
import java.util.Scanner;

public class ScannerType {

	public static void main(String[] args){
		/**
		 * 使用Scanner可以很方便的从文件或键盘读入数据
		 * 比较方便在程序比赛中使用,当然完成老师作业跟不在话下
		 */
		Scanner sc = null;
		
		//sc = new Scanner(System.in);// 从标准输入设备(键盘)读取数据
		
		try{
			sc = new Scanner(new File("E:/test.txt")); // 从文件中读取数据
		}catch(FileNotFoundException e){
			e.printStackTrace();
			System.exit(0);
		}
		while(sc.hasNext()){  //当读取到文件结尾(EOF)时会跳出循环
			System.out.println(sc.next());//按分割符号读取数据,默认为(空格 和 回车)
		}
		sc.close();//关闭操作
	}

}

/**
 * 测试文件 test.txt
 * 
 * 1 2 3 
 * 4 5 
 * 6 
 * 7 
 * 8 9
 * 
 * 输出
 * 
 * 1
 * 2 
 * 3 
 * 4 
 * 5 
 * 6 
 * 7 
 * 8 
 * 9
 * 
 */
 

 

2
1
分享到:
评论
1 楼 tianranhe 2013-04-26  
有效,清楚,好文

相关推荐

    java 文件读写

    在这个场景中,我们关注的是“java文件读写”,特别是读取`properties`配置文件和处理目录及文件的操作。下面我们将详细探讨这两个主题。 首先,`properties`配置文件是Java应用中常用的一种存储配置信息的方式。...

    java文件读写操作

    1. **文件读取**: - 使用`File`类创建一个代表文件对象,例如`File file = new File("path_to_file")`。 - `FileReader`用于读取字符流,`FileInputStream`用于读取字节流。通常,我们会配合`BufferedReader`来...

    java 文件读写 初步学习

    #### 知识点一:Java文件读取 Java提供了多种方式来读取文件,其中`FileInputStream`和`InputStreamReader`是两种常见的用于读取文本文件的方法。在给定的部分内容中,`ReadSettings`方法展示了如何使用这些类来...

    java文件读写之产生随机数

    java 文件读写 java 文件读写java 文件读写 java 文件读写java 文件读写 java 文件读写java 文件读写 java 文件读写

    Java文件读写类

    Java实现对文件的读写,可设置编码格式

    Java文件读写.pdf

    Java文件读写是Java编程语言中基础且重要的操作,用于处理磁盘上的数据。本文将详细探讨Java如何进行文件读写,并提供相关的示例代码。 首先,读取文件时,Java提供了多种类来实现这一功能。`FileInputStream`是...

    JAVA 文件读写操作

    // 创建一个文件读取器对象 FileReader fr = new FileReader("mydata.txt"); // 创建一个缓冲读取器对象 BufferedReader br = new BufferedReader(fr); String line; // 逐行读取文件内容 while ((line = br....

    java 按顺序读取文件

    首先,Java提供了多种类来处理文件读取,如`FileReader`,`BufferedReader`等。`FileReader`主要用于读取字符流,而`BufferedReader`则通过缓冲区提高读取效率。在按顺序读取文件时,通常我们会先创建一个`...

    JAVA 文件读取示例

    在Java编程语言中,文件读取是常见的操作,无论是在处理配置文件、日志记录,还是进行数据交换,都离不开对文件的操作。本教程将详细讲解如何在Java中实现文件读取,以“JAVA 文件读取示例”为主题,通过实际代码...

    完整的java文件读写工具类

    本篇将详细讲解标题为"完整的java文件读写工具类"所涉及的核心知识点,以及如何实现描述中提到的文件与目录管理功能。 1. **Java IO基础**: Java IO是Java标准库中的核心部分,提供了处理输入/输出流的类。在`...

    利用JAVA文件读写流编写的学生点名系统

    本项目“利用JAVA文件读写流编写的学生点名系统”旨在实现一个简单但实用的系统,用于记录和管理学生出勤情况。在大学课程报告中,这种系统可以帮助教师更有效地追踪学生的出席状况。 首先,我们需要了解Java中的...

    java文件读取程序

    这里我们关注的是“java文件读取程序”,它由两个核心类组成:一个用于读取文件,另一个用于写入文件。我们将详细探讨这两个方面,并通过示例代码来理解其工作原理。 首先,让我们来看看读取文件的类。在Java中,...

    Java文件读写操作有清晰注解

    以上就是Java文件读写操作的基础知识,包括核心类的使用、异常处理、资源关闭以及一些优化策略。如果你是初学者,这个例子将帮助你理解基本操作;如果你已经是高手,可能已经对这些了如指掌,但回顾基础知识总是有益...

    java文件读写

    在Java编程语言中,文件...综上所述,Java文件读写涉及多个类和接口,理解并熟练掌握这些概念和方法,将有助于编写出高效、可靠的文件处理程序。在实际应用中,还需要考虑并发访问、文件锁等问题,确保程序的健壮性。

    Java文件读写操作函数实现

    //读取文件中的数据。可以看出 * FileInputStream 为InputStream的子类。 * * 主要方法:int read();//读取单个字符。 int read(char []cbuf);//将读取到的字符存到数组中。返回读取的字符数。 * * 三、...

    JAVA文件读写操作教程与示例代码.docx

    ### JAVA文件读写操作教程与示例代码 #### 引言 在Java编程语言中,文件的读写操作是开发过程中不可或缺的一部分。无论是简单的文本文件处理还是复杂的二进制文件管理,掌握有效的文件读写技术对于任何Java开发者来...

Global site tag (gtag.js) - Google Analytics