filestreamreaderwriterimpl.java

来自「这是一个自编的记事本程序」· Java 代码 · 共 101 行

JAVA
101
字号
package cn.com.csuinfosoft.io.impl;

import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import cn.com.csuinfosoft.io.FileStreamException;
import cn.com.csuinfosoft.io.FileStreamOper;

/**
 * 文件
 * @author 
 *
 */
public class FileStreamReaderWriterImpl implements FileStreamOper {
	
	/**
	 * 将硬盘文件打开到记事本中
	 * @param fileName String
	 * @throws FileStreamException
	 * @return String
	 */
	public String openFile(String fileName) throws FileStreamException {
		Reader fileReader = null;
		InputStream inputStream = null;
		try {
			inputStream = new FileInputStream(fileName);
			fileReader = new InputStreamReader(inputStream);
			StringBuffer fileBuffer = new StringBuffer();	//存储文件内容的缓存对象
			char[] charBuffer = new char[8192];
			while(fileReader.read(charBuffer) != -1) {
				fileBuffer.append(charBuffer);
			}
			return fileBuffer.toString().trim();
		} catch (FileNotFoundException ex) {
			System.err.println(ex);
			throw new FileStreamException(ex);
		} catch (IOException ex) {
			System.err.println(ex);
			throw new FileStreamException(ex);
		}finally {
			if(fileReader != null) {
				try {
					fileReader.close();
				} catch (Exception ex) {
					System.err.println(ex);
				}
			}
		}
	}
	
	/**
	 * 将记事本中的信息保存到文件中
	 * @param fileName String
	 * @param content String
	 * @return boolean
	 * @throws FileStreamException
	 */
	public boolean saveFile(String fileName, String content) throws FileStreamException  {
		Writer fileWriter = null;
		OutputStream outputStream = null;
		BufferedWriter bufferFileWriter = null;
		try {
			outputStream = new FileOutputStream(fileName);
			fileWriter = new OutputStreamWriter(outputStream);
			bufferFileWriter = new BufferedWriter(fileWriter, 8192);
			char[] dd = content.toCharArray();
			for(int i = 0; i < dd.length; i++) {
				if(dd[i] == 10) {
					bufferFileWriter.newLine();
				}
				bufferFileWriter.write(dd[i]);
			}
			bufferFileWriter.flush();
			return true;
		} catch (FileNotFoundException ex) {
			System.err.println(ex);
			throw new FileStreamException(ex);
		} catch (IOException ex) {
			System.err.println(ex);
			throw new FileStreamException(ex);			
		} finally {
			if(bufferFileWriter != null) {
				try {
					bufferFileWriter.close();
				} catch (IOException ex) {
					System.err.println(ex);
				}
			}
		}
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?