Java文件与流-文件与流-FileReader与FileWriter字符输出流

涎涎原创约 844 字大约 3 分钟...JavaJava

236-Java文件与流-文件与流-FileReader与FileWriter字符输出流.mdopen in new window

注意

本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。

概念

示例代码

package com.tencent.chapter03.io流;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;

public class FileReaderAndFileWriter {
	/**
	 	FileReader:以字符为单位读取数据
	 	FileWriter:以字符为单位写出数据
	 	
	 		将文件file/file.txt复制到file/file_bak.txt文件中
	 */
	public static void main(String[] args) {
		FileReader reader = null;
		FileWriter writer = null;
		try {
			//字符输入流
			reader = new FileReader("file/file.txt");
			//字符输出流 
			writer = new FileWriter("file/file_bak.txt");
			
			/*
			 	读取到的字符个数:3  读取到的字符 :[1, 2, 3]
				读取到的字符个数:3  读取到的字符 :[a, b, c]
				读取到的字符个数:1  读取到的字符 :[中, b, c]
			 */
			char[] c = new char[3];//用于保存每次读取的字符数据,一般设置为1024的倍数
			int count = -1;	       //用于保存读取到的字符个数
			while((count = reader.read(c)) != -1)
			{
				System.out.println("读取到的字符个数:" + count  + "  读取到的字符 :" + Arrays.toString(c) );
				
				//将所有的字母改为大写
				String str = new String(c, 0, count);
				str = str.toUpperCase();
				
				//写入文件
				//writer.write(c,0,count);
				writer.write(str);
			}
			
			//注意一.....................强制刷新暂存区
			writer.flush();
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally{
			//注意二.....................释放资源、关闭资源
			//使用顺序:reader -> writer
			//关闭顺序:writer -> reader
			try {
				if(writer != null)
				{
					writer.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			
			try {
				if(reader != null)
				{
					reader.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	
}

分割线


相关信息

以上就是我关于 Java文件与流-文件与流-FileReader与FileWriter字符输出流 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。

扩展知识

流的分类:
	根据流的方向分:输入流、输出流
	根据流的单位分:字节流、字符流
	根据流的功能分:节点流、处理流
	
	字节流输入流:XXXXInputStream
	字节流输出流:XXXXOutputStream
	
	字符流输入流:XXXXReader
	字符流输出流:XXXXWriter

字节流:一个字节一个字节读取数据(英文、数字各占1个字节,中文GBK编码下占2个字节)
    
    	适用于复制文件(文本文档、图片、音频、视频等等):
	    	FileInputStream:以字节为单位读取数据    ---字节输入流
	    	FileOutputStream:以字节为单位写出数据  ---字节输出流
	    	
	             访问字节数组:
	    	ByteArrayInputStream:以字节为单位读取数据    ---字节输入流

字符流:一个字符一个字符读取数据

	            适用于修改文件内容:
	         FileReader:以字符为单位读取数据        ---字符输入流
	 	     FileWriter:以字符为单位写出数据        ---字符输出流
	 	     
	 	     
节点流:能够直接访问数据源文件的流
		FileInputStream input = new FileInputStream("file/file.txt");
		FileOutputStream output = new FileOutputStream("file/file_bak.txt",true);

		FileReader reader = new FileReader("file/file.txt");
		FileWriter writer = new FileWriter("file/file_bak.txt");

处理流:不能够直接访问数据源文件的流,每种流具有特定的功能

		BufferedReader reader = new BufferedReader(new FileReader("file/file.txt"));
			可以一行一行读取数据,特有的方法: readLine() 
			
		BufferedWriter writer = new BufferedWriter(new FileWriter("file/file_bak.txt"));
			可以换行输出数据,特有的方法: newLine() 
			
		

分割线


上次编辑于:
贡献者: 涎涎
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.4