IO流——文件操作字符流

1. 文件操作输入字符流

FileReader 文件操作输入字符流

Constructor 构造方法
	FileReader(File file)
		根据File类对象创建对应的FileReader字符流输入对象
	FileReader(String pathName)
		根据String类型文件路径创建对应的FileReader字符流输入对象
	如果文件不存在,抛出异常FileNotFoundException

Method 成员方法	
	int read();
		读取文件中的一个字符数据,通过返回值返回,返回值类型是int类型,但是在int类
		型中有且只有低16位数据有效
	int read(char[] arr);
		读取文件中的数据保存到字符数组中,返回值类型是读取到的字符个数
	int read(char[] arr, int off, int len);
		读取文件中的数据保存到字符数组中,要求从数组中下标offset开始,到len结束,返
		回值类型是读取到的字符个数

代码展示

public class Demo1 {
	public static void main(String[] args) {
		long start = System.currentTimeMillis();
		
		readTest2();
		
		long end = System.currentTimeMillis();
		System.out.println("Time : " + (end - start));
	}

	// 10
	public static void readTest2() {
		FileReader fileReader = null;
		try {
			fileReader = new FileReader(new File("G:/test/1.txt"));
			
			char[] buf = new char[1024 * 4];
			int length = -1;
			
			while ((length = fileReader.read(buf)) != -1) {
				System.out.println(new String(buf, 0, length));
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (fileReader != null) {
				try {
					fileReader.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}

	// 300
	public static void readTest1() {
		FileReader fileReader = null;
		try {
			fileReader = new FileReader(new File("G:/test/1.txt"));
			
			int content = -1;
			
			while ((content = fileReader.read()) != -1) {
				System.out.println((char) content);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (fileReader != null) {
				try {
					fileReader.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}

2. 文件操作输出字符流

FileWriter文件操作输出字符流

Constructor 构造方法
	FileWriter(File file);
		根据File类对象创建对应文件的文件操作输出字符流
	FileWriter(String pathName);
		根据String类型文件路径创建对应文件的文件操作输出字符流
	FileWriter(File file, boolean append);
		根据File类对象创建对应文件的文件操作输出字符流,并要求为追加写
	FileWriter(String pathName, boolean append);
		根据String类型文件路径创建对应文件的文件操作输出字符流,并要求为追加写
	
	如果创建FileWrite对象时,这里文件不存在,路径合法,这里会创建对应的操作文件。如果路径不合法,抛出异常 FileNotFoundException 
	
Method 成员方法	
	void write(int ch);
		写入一个char类型数据到文件中
	void write(char[] arr);
		写入一个char类型数组到文件中
	void write(char[] arr, int offset, int length);	
		写入一个char类型数组到文件中,要求从offset下标位置开始读取数组数据,长度为
		length
	void write(String str);
		写入一个字符串到文件中
	void write(String str, int offset, int lenght);
		写入一个字符串到文件中,要求从指定字符串offset下标位置开始,长度为length
	如果写入数据操作过程中,发生问题,这里会有一个IOException

代码展示

public class Demo1 {
	public static void main(String[] args) {
		FileWriter fileWriter = null;
		try {
			fileWriter = new FileWriter(new File("G:/test/1.txt"), true);
			
			char[] charArray = "为天地立心".toCharArray();
			
			fileWriter.write(charArray);
			fileWriter.write("为生民立命");
			fileWriter.write("\r\n");
			fileWriter.write(charArray, 0, 5);
			fileWriter.write("为往圣继绝学", 0, 5);
			
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (fileWriter != null) {
				try {
					fileWriter.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		
	}

	private static void writeTest1() {
		FileWriter fileWriter = null;
		try {
			fileWriter = new FileWriter(new File("G:/test/2.txt"), true);
			
			fileWriter.write('武');
			fileWriter.write('汉');
			fileWriter.write('加');
			fileWriter.write('油');
			fileWriter.write(',');
			fileWriter.write('中');
			fileWriter.write('国');
			fileWriter.write('加');
			fileWriter.write('油');
			fileWriter.write(',');
			fileWriter.write('世');
			fileWriter.write('界');
			fileWriter.write('加');
			fileWriter.write('油');
			
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (fileWriter != null) {
				try {
					fileWriter.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}
发布了23 篇原创文章 · 获赞 70 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41424681/article/details/104927543