`

文件读、写

阅读更多

package com.fxz.file;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.fxz.vo.Adress;
/**
 * 读取文件
 * @author Administrator
 *
 */
public class FileToReader {

 
	/**
	 * 读取文件,返回对象集合
	 * @param filePath
	 * @return
	 */
	public static List<Adress> readFileToArray(String filePath){
		
		List<Adress> list = new ArrayList<Adress>();
		File f = new File(filePath) ;
		
		//如果文件存在
		if(f.exists()){
			try {
				BufferedReader reader = new BufferedReader(new FileReader(f));
				String txt ;
				Adress adress = null ;
				while((txt = reader.readLine()) != null){
					if(!"".equals(txt)){
						String id = txt.substring(0, 4);
						String name = txt.substring(4, txt.length());
						adress = new Adress(id , name);
						list.add(adress);
					}
				}
				reader.close();
			} catch (FileNotFoundException e) {
				System.out.println("文件不存在2");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}else {
			System.out.println("文件不存在");
		}
		 
		return list ;
	}

	public static void main(String args[]) {
		long startTime=System.currentTimeMillis(); 
		List<Adress> list = new ArrayList<Adress>();
		list = readFileToArray("c:\\1.txt");
		int i = 1 ;
		for (Adress adress : list) {
			System.out.println(i++ + "、 " + adress.getId() + "    =====    "  + adress.getName());
		}
		long endTime=System.currentTimeMillis(); //获取结束时间  
		System.out.println("程序运行时间: "+(endTime - startTime)+"ms"); 
	}
}

 

 package com.fxz.file;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 文件写入
 * @author 方小洲
 */
public class FileToWrite {

	
	
	
	/**
	 * 利用FileOutputStream  写入文件
	 * @param filePath	文件路径
	 * @param content	写入的内容
	 * @param isCover	是否覆盖
	 * @return
	 */
	public static boolean WriteFileWithFileOutputStream(String filePath , String content , boolean isCover ){
		boolean isSuccess = true ;
		StringBuffer str = new StringBuffer();
		File f = new File(filePath) ;
		
		long begin = System.currentTimeMillis() ;
		
		//存在并不覆盖,读取原文件的内容
		if(!isCover && f.exists()){
			try {
				BufferedReader reader  = new BufferedReader(new FileReader(f));			//读取文件
				String tmp ;
				while((tmp = reader.readLine()) != null){
					str.append(tmp);
				}
				str.append("\n");
				reader.close();
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		str.append(content);
		
		//写入文件
		try {
			FileOutputStream fos = new FileOutputStream(f);
			fos.write(str.toString().getBytes());
			fos.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		long end = System.currentTimeMillis();
		
		System.out.println(end - begin);
		 
		return isSuccess;
	}
	

	/**
	 * 利用FileWriter 写入文件
	 * @param filePath	文件路径
	 * @param content	写入的内容
	 * @param isCover	是否覆盖
	 * @return
	 */
	public static boolean WriteFileWithBufferedOutputStream(String filePath , String content , boolean isCover ){
		boolean isSuccess = true ;
		StringBuffer str = new StringBuffer();
		File f = new File(filePath) ;
		
		//存在并不覆盖,读取原文件的内容
		if(!isCover && f.exists()){
			try {
				BufferedReader reader  = new BufferedReader(new FileReader(f));			//读取文件
				String tmp ;
				while((tmp = reader.readLine()) != null){
					str.append(tmp);
				}
				str.append("\n");
				reader.close();
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		str.append(content);
		
		//写入文件
		try {
			BufferedOutputStream writer = new BufferedOutputStream(new FileOutputStream(f));
			writer.write(str.toString().getBytes());
			writer.flush();
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		 
		return isSuccess;
	}
	
	
	
  
	/**
	 * 利用FileWriter 写入文件
	 * @param filePath	文件路径
	 * @param content	写入的内容
	 * @param isCover	是否覆盖
	 * @return
	 */
	public static boolean WriteFileWithFileWriter(String filePath , String content , boolean isCover ){
		boolean isSuccess = true ;
		StringBuffer str = new StringBuffer();
		File f = new File(filePath) ;
		
		//存在并不覆盖,读取原文件的内容
		if(!isCover && f.exists()){
			try {
				BufferedReader reader  = new BufferedReader(new FileReader(f));			//读取文件
				String tmp ;
				while((tmp = reader.readLine()) != null){
					str.append(tmp);
				}
				str.append("\n");
				reader.close();
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		str.append(content);
		
		//写入文件
		try {
			BufferedWriter writer = new BufferedWriter(new FileWriter(f));
			writer.write(str.toString());
			writer.flush();
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		 
		return isSuccess;
	}
	
	
	public static void main(String[] args) {
		//WriteFileWithFileWriter("c:\\3.txt", "方小洲", true);
		WriteFileWithBufferedOutputStream("c:\\3.txt", "ssssssssssssssfddsf方小洲", false);
	}
}
 
分享到:
评论

相关推荐

    Android NDK文件读取 读写 操作 NDK数据加密DEMO

    Android jni文件读写 NDK文件读取 读写 操作 NDK数据加密DEMO 源码直接上传,运行在android6.0系统测试通过

    读写文件读取文件操作读取文件操作读取文件操作读取文件操作

    在多线程或多进程环境中,多个线程或进程同时读取同一文件通常是安全的,因为读操作是原子性的,不会相互干扰。但要注意避免多个线程同时写入同一文件,以防止数据冲突。 七、文件编码与解码 读取非ASCII编码的...

    采用无缓冲方式实现文件读写.docx

    在本实验中,我们使用无缓冲方式实现文件读/写,即不使用缓冲区来存储文件的内容,而是直接读取或写入文件。这种方式可以提高文件读/写的效率,但需要注意文件的同步问题。 实验步骤 1. 首先,创建一个文件句柄,...

    java 递归读取文件夹 读取文件 写文件

    java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取...

    java实现文件的读写操作

    这个例子中,`BufferedReader`用于提高读取效率,`FileReader`则用于读取文件内容。`try-with-resources`语句确保资源在使用后会被正确关闭。 三、文件的写入 文件的写入操作与读取类似,可以使用`OutputStream`和...

    codesys读写CVS文件(亲测)

    另外需要读取txt文件的关注本人往期的文章,有讲解。资源内部包含工程文件以及CVS文件。 如果是打开工程的界面不显示,可能是codesys的版本过低,需要更新版本。可以参见博客文章:codesys工程ST语言学习笔记(六)...

    unity读写.txt文件

    不过,这里假设文件路径已知且可读。我们可以使用`File.ReadAllText`静态方法来一次性读取整个文件内容: ```csharp string filePath = "path_to_your_file.txt"; string fileContent = File.ReadAllText...

    Qt多线程读写大型文本文件项目

    5.读、写文件需要显示处理进度; 6.增加一个列表,用于展示文本文件的类型、大小、行数等。 一、功能列表 1.显示文件路径选择框,仅展示 .txt类型文件可选; 2.读取文本文件,显示到桌面控件中; 3.读取的文件使用...

    C#进行dat文件读写操作

    1. **C# CSV或txt文本文件读操作** 在C#中,读取CSV或txt文本文件通常使用`System.IO`命名空间下的`StreamReader`类。首先,需要打开文件流,然后逐行读取内容。以下是一个简单的示例: ```csharp using System...

    vba写的完整例子加用户窗口操作选择文件读取文件等

    在这个"vba写的完整例子加用户窗口操作选择文件读取文件等"的案例中,我们将深入探讨VBA在实际应用中的几个关键知识点。 首先,**用户窗口操作**是指通过VBA创建的用户界面,通常使用UserForm来实现。UserForm可以...

    linux c 配置文件读写

    3. **读取文件**:如果以读模式打开文件,可以使用`fgets()`读取每一行,然后解析行内容,根据分隔符(通常是等号)将节、键和值分开。例如,可以使用`strtok()`函数进行字符串分割。 4. **解析数据**:将读取到的...

    JSP读文件和写文件

    一、JSP读文件 1. **FileReader 和 BufferedReader** 使用`java.io.FileReader`和`java.io.BufferedReader`可以方便地读取文本文件。`FileReader`用于打开文件,而`BufferedReader`则提供了一种高效的读取字符流的...

    文件同步与异步读写

    提供的压缩包中的"vc6.0下读文件程序"可能是一个简单的C++示例,展示了如何使用API函数进行同步读取。而"VS2005下写文件程序"则可能包含异步写入的实现,利用了Windows的异步I/O功能。这些示例可以帮助理解同步与...

    读取PLC寄存器,读写XML文件

    通过MODBUS,我们可以读取和写入PLC的寄存器,包括输入寄存器(只读)和输出寄存器(读/写)。 2. **OPC UA**:这是一种更现代、更安全的通信标准,提供了一个统一的接口来访问不同厂商的自动化设备,包括PLC。使用...

    c++对TDMS文件的读写

    在 C++ 中,写 TDMS 文件可以使用 DDC_CreateFile 函数创建文件,并使用 DDC_AddChannelGroup 和 DDC_AddChannel 函数添加通道组和通道。然后,我们可以使用 DDC_SetDataValues 函数设置通道的数据值。最后,我们...

    vc读取bin文件

    在VC++开发环境中,"vc读取bin文件"是一个常见的任务,特别是在处理二进制数据或者需要从外部加载配置或资源时。MFC(Microsoft Foundation Classes)是VC++的一个库,提供了一套面向对象的API,用于构建Windows应用...

    TDMS文件读写【官方C语言例程】

    这个库提供了API接口,使得开发者能够方便地将数据写入TDMS文件或从TDMS文件中读取数据。 1. **TDMS文件结构**: TDMS文件由一系列的“对象”组成,每个对象可以是通道、组或者文件属性。通道包含实际的数据,而组...

    MFC txt文件读写

    在这个"**MFC txt文件读写**"的实践中,我们将探讨如何利用MFC来处理文本文件的读取和写入操作。 首先,我们需要了解MFC中的CFile类,它是处理文件操作的基础。CFile类提供了打开、关闭、读取和写入文件的基本方法...

    Android 文件读写操作

    一、资源文件的读取 1. 从resource的raw中读取文件数据: 资源文件通常存储在`res/raw`目录下,可以通过`openRawResource()`方法获取输入流,然后读取数据。例如,要读取名为`test.txt`的文件,可以使用以下代码: ...

    为什么fwrite写文件后,用fread读出来文件长度是0,即fread读不出数据

    当你遇到“`fwrite` 写文件后,用 `fread` 读出来文件长度是0,即 `fread` 读不出数据”的问题时,可能存在以下几个原因: 1. **文件打开模式错误**: - 当你使用 `fopen` 函数打开文件时,使用的模式可能只允许...

Global site tag (gtag.js) - Google Analytics