TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
一、读写工具
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.nio.ByteBuffer;
- import java.nio.MappedByteBuffer;
- import java.nio.channels.FileChannel;
-
-
-
- /** *//**
- * @author lichun
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
- public class FileUtil {
-
- public static ByteBuffer readFile(String filename) throws Exception
- {
- FileChannel fiChannel = new FileInputStream(filename).getChannel();
- MappedByteBuffer mBuf;
- mBuf = fiChannel.map(FileChannel.MapMode.READ_ONLY, 0, fiChannel.size());
- fiChannel.close();
- fiChannel = null;
-
- return mBuf;
-
- }
-
-
- public static void saveFile(ByteBuffer src, String filename) throws Exception
- {
- FileChannel foChannel = new FileOutputStream(filename).getChannel();
- foChannel.write(src);
- foChannel.close();
- foChannel = null;
- }
-
- public static void saveFile(FileChannel fiChannel, String filename) throws IOException
- {
- MappedByteBuffer mBuf;
- mBuf = fiChannel.map(FileChannel.MapMode.READ_ONLY, 0, fiChannel.size());
-
- FileChannel foChannel = new FileOutputStream(filename).getChannel();
- foChannel.write(mBuf);
-
- fiChannel.close();
- foChannel.close();
-
- fiChannel = null;
- foChannel = null;
- }
-
-
- public static void main(String[] args) throws Exception
- {
- final String suffix = ".txt";
- final String filename = "bufferTemp";
- final String srcFile = filename + suffix ;
- final String backupFile = filename + "-" + System.currentTimeMillis() + suffix;
- ByteBuffer byteBuffer = FileUtil.readFile(srcFile);
- FileUtil.saveFile(byteBuffer, backupFile);
- byteBuffer = null;
-
- }
- }
- 二、写文件线程
- import java.nio.channels.FileChannel;
-
- /** *//**
- * @author lichun
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
- public class WriteFileThread extends Thread {
-
- private FileChannel fiChannel;
- private String fileName;
-
- public WriteFileThread(String name)
- {
- super(name);
- }
-
- public WriteFileThread(String name, FileChannel fiChannel, String fileName)
- {
- this(name);
- this.fiChannel = fiChannel;
- this.fileName = fileName;
- }
-
- public void setFiChannel(FileChannel fiChannel)
- {
- this.fiChannel = fiChannel;
- }
-
- public FileChannel getFiChannel() {
- return fiChannel;
- }
-
- public void setFileName(String fileName) {
- this.fileName = fileName;
- }
-
- public String getFileName() {
- return fileName;
- }
-
- public void run()
- {
- System.out.println("in Thread: " + this.getName());
- try {
- FileUtil.saveFile(this.fiChannel, this.fileName);
- } catch (Exception e) {
- System.out.println("The file is not founded: " + fileName);
- e.printStackTrace();
- }
- System.out.println("end Thread: " + this.getName());
- }
- }
- 三、复制文件内容生成新文件
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.nio.ByteBuffer;
- import java.nio.channels.FileChannel;
- import java.util.*;
-
-
- /** *//**
- * @author lichun
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
- public class TransferFile {
-
- private String srcFile;
-
- List files = new ArrayList();
- ByteBuffer byteBuffer;
-
- public TransferFile()
- {
- createFileNames();
- }
-
- private void createFileNames()
- {
- for (int i = 0; i < 10; i++)
- {
- files.add(i + "");
- }
- }
-
- public List getFiles()
- {
- return this.files;
- }
-
- public String getSrcFile() {
- return srcFile;
- }
-
- public void setSrcFile(String srcFile) {
- this.srcFile = srcFile;
- }
-
- public void saveFiles() throws FileNotFoundException
- {
- String tempFile;
- for (int i = 0; i < this.files.size(); i++)
- {
- tempFile = "test-files/" + (String)files.get(i) + ".txt";
- System.out.println("begin create thread for " + tempFile);
-
- FileChannel fiChannel = new FileInputStream(this.srcFile).getChannel();
-
- WriteFileThread writeFileThread = new WriteFileThread("writeFile"+i, fiChannel, tempFile);
- writeFileThread.start();
- }
-
- }
-
- public static void main(String[] args) throws Exception
- {
- final String srcFile = "test-files/transferFile.txt";
- TransferFile transferFile = new TransferFile();
- transferFile.setSrcFile(srcFile);
- transferFile.saveFiles();
- }
- }
复制代码
源码下载:http://file.javaxxz.com/2014/10/29/235732093.zip |
|