`
最代码
  • 浏览: 1685 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

常用的文件操作方法

阅读更多
java的File的常用操作方法总结。

1.以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。

2.以字符为单位读取文件,常用于读文本,数字等类型的文件

3.以行为单位读取文件,常用于读面向行的格式化文件

4.随机读取文件内容

5.RandomAccessFile追加文件

6.FileWriter追加文件

package com.zuidaima.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader;

/**
 * 常用的文件操作类
 * 
 * 
 */
public class FileUtil {

	/**
	 * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
	 * 
	 * @param fileName
	 *            文件的名
	 */
	public static void readFileByBytes(String fileName) {
		File file = new File(fileName);
		InputStream in = null;
		try {
			System.out.println("以字节为单位读取文件内容,一次读一个字节:");
			// 一次读一个字节
			in = new FileInputStream(file);
			int tempbyte;
			while ((tempbyte = in.read()) != -1) {
				System.out.write(tempbyte);
			}
			in.close();
		} catch (IOException e) {
			e.printStackTrace();
			return;
		}
	}

	/**
	 * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
	 * 
	 * @param fileName
	 *            文件的名
	 */
	public static void readFileByByte(String fileName) {
		File file = new File(fileName);
		InputStream in = null;
		try {
			System.out.println("以字节为单位读取文件内容,一次读多个字节:");
			// 一次读多个字节
			byte[] tempbytes = new byte[100];
			int byteread = 0;
			in = new FileInputStream(file);
			showAvailableBytes(in);
			// 读入多个字节到字节数组中,byteread为一次读入的字节数
			while ((byteread = in.read(tempbytes)) != -1) {
				System.out.write(tempbytes, 0, byteread);
			}
		} catch (Exception e1) {
			e1.printStackTrace();
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (IOException e1) {
				}
			}
		}
	}

	/**
	 * 以字符为单位读取文件,常用于读文本,数字等类型的文件
	 * 
	 * @param fileName
	 *            文件名
	 */
	public static void readFileByChar(String fileName) {
		File file = new File(fileName);
		Reader reader = null;

		try {
			System.out.println("以字符为单位读取文件内容,一次读多个字节:");
			// 一次读多个字符
			char[] tempchars = new char[30];
			int charread = 0;
			reader = new InputStreamReader(new FileInputStream(file));
			// 读入多个字符到字符数组中,charread为一次读取字符数
			while ((charread = reader.read(tempchars)) != -1) {
				// 同样屏蔽掉r不显示
				if ((charread == tempchars.length)
						&& (tempchars[tempchars.length - 1] != 'r')) {
					System.out.print(tempchars);
				} else {
					for (int i = 0; i < charread; i++) {
						if (tempchars[i] == 'r') {
							continue;
						} else {
							System.out.print(tempchars[i]);
						}
					}
				}
			}
		} catch (Exception e1) {
			e1.printStackTrace();
		} finally {
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e1) {
				}
			}
		}
	}

	/**
	 * 以字符为单位读取文件,常用于读文本,数字等类型的文件
	 * 
	 * @param fileName
	 *            文件名
	 */
	public static void readFileByChars(String fileName) {
		File file = new File(fileName);
		Reader reader = null;
		try {
			System.out.println("以字符为单位读取文件内容,一次读多个字节:");
			// 一次读多个字符
			char[] tempchars = new char[30];
			int charread = 0;
			reader = new InputStreamReader(new FileInputStream(file));
			// 读入多个字符到字符数组中,charread为一次读取字符数
			while ((charread = reader.read(tempchars)) != -1) {
				// 同样屏蔽掉r不显示
				if ((charread == tempchars.length)
						&& (tempchars[tempchars.length - 1] != 'r')) {
					System.out.print(tempchars);
				} else {
					for (int i = 0; i < charread; i++) {
						if (tempchars[i] == 'r') {
							continue;
						} else {
							System.out.print(tempchars[i]);
						}
					}
				}
			}
		} catch (Exception e1) {
			e1.printStackTrace();
		} finally {
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e1) {
				}
			}
		}
	}

	/**
	 * 以行为单位读取文件,常用于读面向行的格式化文件
	 * 
	 * @param fileName
	 *            文件名
	 */
	public static void readFileByLines(String fileName) {
		File file = new File(fileName);
		BufferedReader reader = null;
		try {
			System.out.println("以行为单位读取文件内容,一次读一整行:");
			reader = new BufferedReader(new FileReader(file));
			String tempString = null;
			int line = 1;
			// 一次读入一行,直到读入null为文件结束
			while ((tempString = reader.readLine()) != null) {
				// 显示行号
				System.out.println("line " + line + ": " + tempString);
				line++;
			}
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e1) {
				}
			}
		}
	}

	/**
	 * 随机读取文件内容
	 * 
	 * @param fileName
	 *            文件名
	 */
	public static void readFileByRandomAccess(String fileName) {
		RandomAccessFile randomFile = null;
		try {
			System.out.println("随机读取一段文件内容:");
			// 打开一个随机访问文件流,按只读方式
			randomFile = new RandomAccessFile(fileName, "r");
			// 文件长度,字节数
			long fileLength = randomFile.length();
			// 读文件的起始位置
			int beginIndex = (fileLength > 4) ? 4 : 0;
			// 将读文件的开始位置移到beginIndex位置。
			randomFile.seek(beginIndex);
			byte[] bytes = new byte[10];
			int byteread = 0;
			// 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。
			// 将一次读取的字节数赋给byteread
			while ((byteread = randomFile.read(bytes)) != -1) {
				System.out.write(bytes, 0, byteread);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (randomFile != null) {
				try {
					randomFile.close();
				} catch (IOException e1) {
				}
			}
		}
	}

	/**
	 * 显示输入流中还剩的字节数
	 * 
	 * @param in
	 */
	private static void showAvailableBytes(InputStream in) {
		try {
			System.out.println("当前字节输入流中的字节数为:" + in.available());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * RandomAccessFile追加文件
	 * 
	 * @param fileName
	 *            文件名
	 * @param content
	 *            追加的内容
	 */
	public static void appendMethodByRandomAccessFile(String fileName,
			String content) {
		System.out.println("RandomAccessFile追加文件");
		try {
			// 打开一个随机访问文件流,按读写方式
			RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
			// 文件长度,字节数
			long fileLength = randomFile.length();
			// 将写文件指针移到文件尾。
			randomFile.seek(fileLength);
			randomFile.writeBytes(content);
			randomFile.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * FileWriter追加文件
	 * 
	 * @param fileName
	 * @param content
	 */
	public static void appendMethodByFileWriter(String fileName, String content) {
		System.out.println("appendMethodByFileWriter");
		try {
			// 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
			FileWriter writer = new FileWriter(fileName, true);
			writer.write(content);
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		String path = FileUtil.class.getResource("").getFile();
		String fileName = path + "/temp.txt";
		FileUtil.readFileByByte(fileName);
		System.out.println("");
		FileUtil.readFileByBytes(fileName);
		System.out.println("");
		FileUtil.readFileByChar(fileName);
		System.out.println("");
		FileUtil.readFileByChars(fileName);
		System.out.println("");
		FileUtil.readFileByLines(fileName);
		System.out.println("");
		FileUtil.readFileByRandomAccess(fileName);
		System.out.println("");
		String content = "\nnew append RandomAccessFile!";
		FileUtil.appendMethodByRandomAccessFile(fileName, content);
		FileUtil.appendMethodByRandomAccessFile(fileName,
				"\nappend end RandomAccessFile");
		FileUtil.readFileByLines(fileName);
		System.out.println("");
		FileUtil.appendMethodByFileWriter(fileName, content);
		FileUtil.appendMethodByFileWriter(fileName,
				"\nappend end appendMethodByFileWriter");
		FileUtil.readFileByLines(fileName);
	}
}

	    			


完整代码地址:http://www.zuidaima.com/share/1550463416814592.htm
分享到:
评论

相关推荐

    基于JAVA的常用文件操作方法

    在提供的`FileUtil.java`文件中,可能包含了上述某些或全部的文件操作方法,具体实现需要查看源码才能得知。对于实际项目开发,编写一个`FileUtil`工具类是非常常见的做法,这样可以将文件操作封装起来,便于代码的...

    Ruby常用文件操作方法

    下面将详细阐述Ruby中的这些常用文件操作方法。 一、新建文件 在Ruby中,新建文件通常使用`File.new`方法。以下是一个示例: ```ruby f = File.new(File.join("C:", "Test.txt"), "w+") f.puts("I am Jack") f.puts...

    文件操作类,包含常用的文件操作方法

    封装了包括所有常用的文件操作方法如:读文件,写文件,查看文件夹大小,树状展示文件夹中文件目录,拷贝文件,复制文件,删除文件,创建文件,递归删除文件夹中文件,获取指定文件属性

    C#中常用的经典文件操作方法

    本文将深入探讨C#中经典的文件操作方法,包括文件读写、复制、删除、移动以及目录创建与删除等关键功能。 ### 文件读写 C#提供了多种类库来实现文件读写操作,其中`StreamWriter`和`StreamReader`是最常用的一对。...

    文件操作常用方法

    一些文件的常用操作 writeDate(Context context,InputStream is, File file, String charSet) getDataFromAssets(Context context,String path, String charSet) getText(Context context, String path, String ...

    Visual C# File类常用的文件操作方法

    ### Visual C# File类常用的文件操作方法 在.NET框架中,`System.IO`命名空间下的`File`类是一个非常重要的工具,它为开发者提供了多种静态方法来执行与文件相关的操作,如创建、复制、移动、删除文件等。下面将...

    C#常用的关于文件的操作方法

    在C#编程语言中,文件操作是至关重要的部分,它涉及到对本地系统文件的创建、读取、写入、删除等操作。以下是一些常用的关键知识点: 1. **文件流(FileStream)** C#中的`System.IO.FileStream`类是进行文件操作的...

    C#中常用的经典文件操作方法.doc

    ### C#中常用的经典文件操作方法 在C#编程中,对文件进行操作是非常常见的需求之一。无论是简单的读写操作还是复杂的文件管理任务,掌握基本的文件操作技巧都是必不可少的。本文将详细介绍C#中的一些经典文件操作...

    Excel-VBA操作文件四大方法

    除了利用Excel对象来处理文件之外,还可以通过VBA内置的一些文件处理语句来实现文件操作,例如使用`Open`语句读取或写入文件。这种方法适用于处理各种类型的文件,不仅仅是Excel文件。 #### 三、利用...

    《Java文件操作大全》电子书

    《Java文件操作大全》电子书 本文汇集常用文件操作方法,包括文件的建立/检查与删除,目录的建立/检查与删除,取出目录中文件,文件属性的取得,逐行读取数据等等。

    c# 编写常用文件操作

    #### 二、文件操作 ##### 1. 向文件追加文本 使用`StreamWriter`类可以方便地向文件追加内容。以下代码展示了如何打开一个文件,并在其末尾添加新的文本: ```csharp using System.IO; // 创建一个StreamWriter...

    C#常用文件操作.txt

    ### C#中的文件操作 #### 1. 写入文件 在C#中,可以通过`StreamWriter`类来实现对文本文件的追加写入。例如,下面的代码展示了如何向一个名为`myText.txt`的文件中追加文本: ```csharp using System.IO; ...

    常用文件类型图标

    以下是对“常用文件类型图标”这一主题的详细解释: 1. **文件扩展名与文件类型**:文件扩展名是文件名中点号"."后面的部分,如.txt、.docx、.pdf等。它是用来标识文件类型的关键,Windows系统根据扩展名来决定应该...

    Java文件操作方法总结

    Java文件操作中的一些常用方法的总结,可以参考参考啦!

    C# 操作文件源码_几种操作文件的方法封装

    常用的几种操作文件的方法封装 常用的几种操作文件的方法封装 常用的几种操作文件的方法封装

Global site tag (gtag.js) - Google Analytics