java file write_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java file write

java file write

 2015/1/7 12:35:01  lihongtai  程序员俱乐部  我要评论(0)
  • 摘要:packagecn.newtouch.service;importjava.nio.charset.Charset;/***ThefileWriterService.**@authore360612*/publicinterfaceSfjFileWriterServiceBatch{/***InstantiatesanewFileWriter.**@paramfileName*fileName@ifproblemoccurred*/voidopen(StringfileName)
  • 标签:file Java
class="File Write Interface" name="code">package cn.newtouch.service;

import java.nio.charset.Charset;

/**
 * The fileWriterService.
 * 
 * @author e360612
 */
public interface SfjFileWriterServiceBatch {

	/**
	 * Instantiates a new FileWriter.
	 * 
	 * @param fileName
	 *            fileName @ if problem occurred
	 */
	void open(String fileName);

	/**
	 * Write a line of the file with line separator in default charset
	 * configured in parameter table.
	 * 
	 * @param line
	 *            the line @ if problem occurred
	 */
	void writeLine(String line);

	/**
	 * Write a line of the file with/without line separator in default charset
	 * configured in parameter table.
	 * 
	 * @param line
	 *            the line
	 * @param wrapLine
	 *            if next line needs a wrap @ if problem occurred
	 */
	void writeLine(String line, boolean wrapLine);

	/**
	 * Write line in customized charset.
	 * 
	 * @param line
	 *            the line
	 * @param charset
	 *            the charset @ the sfj batch technical exception
	 */
	void writeLine(String line, Charset charset);

	/**
	 * Write a line of the file with/without line separator in customized
	 * charset.
	 * 
	 * @param line
	 *            the line
	 * @param wrapLine
	 *            the wrap line
	 * @param charset
	 *            the charset @ the sfj batch technical exception
	 */
	void writeLine(String line, boolean wrapLine, Charset charset);

	/**
	 * Write a line of the file with buffer.
	 * 
	 * @param buffer
	 *            the line
	 * @param count
	 *            the line @ if problem occurred
	 */
	void writeLine(byte[] buffer, int count);

	/**
	 * Close the file.
	 * 
	 * @ if problem occurred
	 */
	void close();

	/**
	 * Getter compteur.
	 * 
	 * @return the compteur
	 */
	long getCompteur();
}

?

package cn.newtouch.service.impl;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;

import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import cn.newtouch.service.SfjFileWriterServiceBatch;

/**
 * FileWriterService implementation.
 * 
 * @author e397930
 */
public class SfjFileWriterServiceBatchImpl implements SfjFileWriterServiceBatch {

	/** The output stream. */
	private FileOutputStream outputStream;

	/** The file in channel. */
	private FileChannel fileOutChannel;

	/** file name. */
	@SuppressWarnings("unused")
	private String fileName;

	/** The Constant LINE_SEPARATOR. */
	private static final String LINE_SEPARATOR = System.getProperty("line.separator");

	/** Compteur... */
	private long compteur;

	/**
	 * FileWriter constructor.
	 */
	public SfjFileWriterServiceBatchImpl() {
	}

	/**
	 * 
	 * {@inheritDoc}
	 * 
	 * @see com.inetpsa.sfj.servicebatch.fileio.SfjFileWriterServiceBatch#open(java.lang.String)
	 */
	public void open(String fileName) {
		try {
			this.fileName = fileName;
			File file = new File(fileName);
			if (file.exists()) {
				file.delete();
			}
			File folder = file.getParentFile();
			folder.mkdirs();
			outputStream = new FileOutputStream(fileName);
			fileOutChannel = outputStream.getChannel();
		} catch (FileNotFoundException e) {

			e.printStackTrace();
		}
	}

	/**
	 * 
	 * {@inheritDoc}
	 * 
	 * @see com.inetpsa.sfj.servicebatch.fileio.SfjFileWriterServiceBatch#writeLine(java.lang.String)
	 */
	public void writeLine(String line) {
		this.writeLine(line, true, null);
	}

	/**
	 * {@inheritDoc}
	 * 
	 * @see com.inetpsa.sfj.servicebatch.fileio.SfjFileWriterServiceBatch#writeLine(java.lang.String,
	 *      java.nio.charset.Charset)
	 */
	public void writeLine(String line, Charset charset) {
		this.writeLine(line, true, charset);
	}

	/**
	 * 
	 * {@inheritDoc}
	 * 
	 * @see com.inetpsa.sfj.servicebatch.fileio.SfjFileWriterServiceBatch#writeLine(java.lang.String,
	 *      boolean)
	 */
	public void writeLine(String line, boolean wrapLine) {
		writeLine(line, wrapLine, null);
	}

	/**
	 * {@inheritDoc}
	 * 
	 * @see com.inetpsa.sfj.servicebatch.fileio.SfjFileWriterServiceBatch#writeLine(java.lang.String,
	 *      boolean, java.nio.charset.Charset)
	 */
	public void writeLine(String line, boolean wrapLine, Charset charset) {
		try {
			Charset outputCharset = charset;
			if (fileOutChannel != null) {
				String content = line;
				if (wrapLine) {
					content = line + LINE_SEPARATOR;
				}
				fileOutChannel.write(ByteBuffer.wrap(content.getBytes(outputCharset)));
			}

			compteur++;
		} catch (IOException e) {

			e.printStackTrace();
		}
	}

	/**
	 * 
	 * {@inheritDoc}
	 * 
	 * @see com.inetpsa.sfj.servicebatch.fileio.SfjFileWriterServiceBatch#writeLine(byte[],
	 *      int)
	 */
	@Override
	public void writeLine(byte[] buffer, int count) {
		throw new NotImplementedException();
	}

	/**
	 * 
	 * {@inheritDoc}
	 * 
	 * @see com.inetpsa.sfj.servicebatch.fileio.SfjFileWriterServiceBatch#close()
	 */
	public void close() {
		if (fileOutChannel != null) {
			try {
				fileOutChannel.close();
				outputStream.close();
			} catch (IOException e) {

				e.printStackTrace();
			}
		}
	}

	/**
	 * Getter compteur.
	 * 
	 * @return the compteur
	 */
	public long getCompteur() {
		return compteur;
	}

}

?

上一篇: shiro使用ehcache实现集群同步和session复制 下一篇: 没有下一篇了!
发表评论
用户名: 匿名