JAVA IO流相关代码(FileWriter,FileReader)

Posted 小乖乖的臭坏坏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA IO流相关代码(FileWriter,FileReader)相关的知识,希望对你有一定的参考价值。

FileWriter和FileReader代码解析

功能:将C盘一个文本文件复制到D盘。
复制的原理:
其实就是将C盘下的文件数据存储到D盘的一个文件中。
步骤:
1,在D盘创建一个文件。用于存储C盘文件中的数据。
2,定义读取流和C盘文件关联。
3,通过不断的读写完成数据存储。
4,关闭资源。

//将C盘一个文本文件复制到D盘。
import java.io.*;

class CopyText 

	public static void main(String[] args) throws IOException
	
		copy_2();
	

	public static void copy_2()
	
		FileWriter fw = null;
		FileReader fr = null;
		try
		
			fw = new FileWriter("SystemDemo_copy.txt");
			fr = new FileReader("SystemDemo.java");

			char[] buf = new char[1024];

			int len = 0;
			while((len=fr.read(buf))!=-1)
			
				//str - 字符串,off - 开始编写字符的偏移量,len - 要写入的 len数
				fw.write(buf,0,len);
			
		
		catch (IOException e)
		
			throw new RuntimeException("读写失败");
		
		finally
		
			if(fr!=null)
				try
				
					fr.close();
				
				catch (IOException e)
				
				
			if(fw!=null)
				try
				
					fw.close();
				
				catch (IOException e)
				
				
		
	


重要代码

判决写入是否结束的条件

(len=fr.read(buf))!=-1

写入操作

//str - 字符串,off - 开始编写字符的偏移量,len - 要写入的 len数
fw.write(buf,0,len);

通过字符数组读取文件内容

import java.io.*;

class FileReaderDemo2 

	public static void main(String[] args) throws IOException
	
		FileReader fr = new FileReader("demo.txt");

		//定义一个字符数组。用于存储读到字符。
		//该read(char[])返回的是读到字符个数。
		char[] buf = new char[1024];

		int num = 0;
		while((num=fr.read(buf))!=-1)
		
			System.out.println(new String(buf,0,num));
		
		
		fr.close();
	

重要代码

String(byte[] bytes, int offset, int length)
通过使用平台的默认字符集解码指定的字节子阵列来构造新的 String 。

new String(buf,0,num)

字符流和字节流

/*
字符流和字节流:

字节流两个基类:
InputStream   OutputStream


字符流两个基类:
Reader Writer

先学习一下字符流的特点。

既然IO流是用于操作数据的,
那么数据的最常见体现形式是:文件。

那么先以操作文件为主来演示。

需求:在硬盘上,创建一个文件并写入一些文字数据。

找到一个专门用于操作文件的Writer子类对象。FileWriter。  后缀名是父类名。 前缀名是该流对象的功能。


*/
import java.io.*;
class  FileWriterDemo

	public static void main(String[] args) throws IOException
	
		//创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。
		//而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。
		//其实该步就是在明确数据要存放的目的地。
		FileWriter fw = new FileWriter("demo.txt");

		//调用write方法,将字符串写入到流中。
		fw.write("abcde");

		//刷新流对象中的缓冲中的数据。
		//将数据刷到目的地中。
		//fw.flush();


		//关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。
		//将数据刷到目的地中。
		//和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。
		fw.close();
	


参考:
毕向东java

以上是关于JAVA IO流相关代码(FileWriter,FileReader)的主要内容,如果未能解决你的问题,请参考以下文章

Java 之IO流及应用

Java连载98-FileReader和FileWriter详解

Java中的IO操作 字符流:FileReader和 FileWriter

Java IO输入输出流 FileWriter 字符流

JAVA基础复习- 字符流FileWriter

IO流概述及FileWriter类使用