`
ld362093642
  • 浏览: 66659 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java 读写txt文件 以及 替换或向txt文件追加内容(play framework)

阅读更多
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Date;

import play.Logger;
import play.mvc.Controller;
import util.XString;

/**
	 * <p>生成一个指定长度的随机字符串</p>
	 * <p>长度介于4和256之间</p>
	 * @author rainyhao
	 * @since 2013-7-31 下午3:43:56
	 * @param length 字符串长度 如果长度大于256, 则按256处理, 如果长度小于4, 则按4处理
	 * @return
	 */
	public static final String random(int length) {
		if (length < 4) {
			length = 4;
		} 
		if (length > 256) {
			length = 256;
		}
		char[] buffer = new char[length];
		Random rand = new Random();
		for (int i = 0; i < buffer.length; i++) {
			int randIndex = rand.nextInt(LETTERS.length);
			buffer[i] = LETTERS[randIndex];
		}
		return new String(buffer);
	}
private static final char[] LETTERS = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
											'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
											'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
											'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
											'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};


/**
	 * <p>更新命名实体信息文件</p>
	 * <p>返回</p>
	 * @author Lingdong
	 * @since  2013-12-27 下午12:58:48
	 * @param file
	 */
	public static void updateNameEntity(File file, Integer etype){
		try {
			if(null!=file){
				updateNameEntityFile(file, etype, System.currentTimeMillis());
			}
		} catch (Exception e) {
			Logger.error(e, " Error get updateNameEntity NameEntity.updateNameEntity ");
			renderJSON("error");
		}
		//render("sz.html");
		redirect("Application.testSentiment");
	}
	
	/**
	 * <p>替换命名实体信息文件</p>
	 * <p>返回</p>
	 * @author Lingdong
	 * @since  2013-12-27 下午12:58:53
	 * @param file
	 */
	public static void insteadNameEntity(File file, Integer etype){
		try {
			if(null!=file){
				saveNameEntityFile(file, etype, System.currentTimeMillis());
			}
		} catch (Exception e) {
			Logger.error(e, " Error get insteadNameEntity NameEntity.insteadNameEntity ");
			renderJSON("error");
		}
		//render("sz.html");	
		redirect("Application.testSentiment");
	}


// 保存更新上传的TXT文件 , 向txt追加内容,并返回实际保存在服务器上的文件名
	private static String updateNameEntityFile(File uploaded, Integer etype, Long time) throws IOException {
		String filePath = util.Constants.NAMEENTITY_FILE_PEOPLE_PATH;
		String fn = "people";
		if(etype!=1){
			filePath = util.Constants.NAMEENTITY_FILE_COMPANY_PATH;
			fn = "company";
		}
		// 上传后实际保存在服务器上的文件名: 
		String saveName = fn + "_" + time + "_" + XString.random(8) + uploaded.getName().substring(uploaded.getName().lastIndexOf("."));//"_" + System.currentTimeMillis() + "_" + XString.random(8) + "_" + uploaded.getName();
		// 创建保存目录
		File toSave = new File(filePath + "a/");
		if (!toSave.exists()) {
			toSave.mkdirs();
		}
		// 保存文件
		toSave = new File(filePath + "a/" + saveName);
		File checkFile = new File(filePath + "b/check.txt");
		if(checkFile.exists()){//删除校验文件
			play.libs.Files.delete(checkFile);
		}
		play.libs.Files.copy(uploaded, toSave);//写入添加的文件到A目录
		File bFile = new File(filePath + "b/");
		if (!bFile.exists()) {
			bFile.mkdirs();
		}
		bFile = new File(filePath + "b/" + fn + ".txt");
		String line="";
		//FileReader reader = new FileReader(toSave);
		InputStreamReader isr = new InputStreamReader(new FileInputStream(toSave),"utf-8");
		OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(bFile,true), "utf-8");
		//FileWriter writer = new FileWriter(bFile,true);
		BufferedReader br = new BufferedReader(isr);//new InputStreamReader(new FileInputStream(toSave),"utf-8");
		BufferedWriter bw = new BufferedWriter(osw);
		while((line=br.readLine())!=null){
			System.out.println(line);
			
		    bw.write(new String(line));
		    bw.newLine();
		}
		bw.flush();
		br.close();
		bw.close();
		isr.close();
		osw.close();
		//reader.close();
		//writer.close();
		
		checkFile.createNewFile();//重新创建校验文件
		return saveName;
	}


// 保存替换上传的TXT文件, 并返回实际保存在服务器上的文件名
	private static String saveNameEntityFile(File uploaded, Integer etype, Long time) throws IOException {
		String filePath = util.Constants.NAMEENTITY_FILE_PEOPLE_PATH;
		String fn = "people";
		if(etype!=1){
			filePath = util.Constants.NAMEENTITY_FILE_COMPANY_PATH;
			fn = "company";
		}
		System.out.println("instead");
		// 上传后实际保存在服务器上的文件名: 
		String saveName = fn + "_" + time + "_" + XString.random(8) + uploaded.getName().substring(uploaded.getName().lastIndexOf("."));//"_" + System.currentTimeMillis() + "_" + XString.random(8) + "_" + uploaded.getName();
		// 创建保存目录
		File toSave = new File(filePath + "a/");
		if (!toSave.exists()) {
			toSave.mkdirs();
		}
		// 保存文件
		toSave = new File(filePath + "a/" + saveName);
		File checkFile = new File(filePath + "b/check.txt");
		if(checkFile.exists()){//删除B目录校验文件
			play.libs.Files.delete(checkFile);
		}
		play.libs.Files.copy(uploaded, toSave);//写入A目录添加的文件
		
		File bFile = new File(filePath + "b/");
		if (!bFile.exists()) {
			bFile.mkdirs();
		}
		bFile = new File(filePath + "b/" + fn + ".txt");
		if(bFile.exists()){//删除B目录原数据文件
			play.libs.Files.delete(bFile);
		}
		play.libs.Files.copy(toSave, bFile);//将A目录要替换到B目录的文件写到B目录
		checkFile.createNewFile();//重新创建校验文件
		return saveName;
	}

分享到:
评论

相关推荐

    java创建TXT文件并进行读、写操作(代码)

    ### Java创建TXT文件并执行读写操作:详细解析与代码示例 在现代软件开发中,文件处理是一项基本且重要的任务。Java作为一种广泛使用的编程语言,提供了强大的API来支持文件的创建、读取、写入以及修改等操作。本文...

    JAVA简单的读写文本文件的代码

    通过上述四个主要部分的分析,我们可以看到Java语言在处理文件读写方面提供了丰富的API支持。使用合适的类库可以极大地简化开发工作并提高程序的性能。例如,使用`StringBuffer`可以有效地处理字符串的动态增长;而`...

    Delphi中读写TXT文件

    在Delphi中处理TXT文件主要涉及到三个核心过程:创建/写入文件、追加内容到文件以及读取文件内容。以下是对给定代码示例的详细解析: ##### 1. 创建并写入TXT文件 (Procedure NewTxt) ```pascal Procedure NewTxt...

    Java读写.txt文件

    在Java编程中,读写文本文件(如`.txt`文件)是常见的操作,尤其是在处理配置文件时。配置文件通常以键值对(key-value pairs)的形式存储数据,便于程序访问和管理设置。以下是对这个主题的详细阐述: 1. **Java I...

    unity读写.txt文件

    在标题"unity读写.txt文件"中提到的“无需其他插件和脚本”,意味着我们将只依赖Unity内置的C#支持,不引入额外的第三方库或组件。下面我们将分步骤介绍如何实现这个功能。 1. **读取TXT文件** 要读取TXT文件,...

    java读写文件(txt)

    在Java编程中,读写文件是一项基础且重要的任务,...以上就是关于“Java读写文件(txt)”的知识点,包括文件的读取、内容转换、正则匹配以及文件的写入。希望这些内容能帮助你理解和掌握Java在文件操作上的基本技能。

    基于Java向zip压缩包追加文件

    在Java编程中,向现有的ZIP压缩包追加文件通常需要经过解压、修改、再压缩的步骤,因为标准的Java ZIP库(如`java.util.zip`包)并不直接支持追加到已存在的ZIP文件。本篇文章将深入探讨如何实现这个功能,主要关注...

    java 追加文件内容

    在Java编程语言中,追加文件内容是一项常见的任务,它涉及到对已有文件的读写操作。下面我们将深入探讨如何在Java中实现这个功能,并提供一个示例代码。 首先,追加文件内容通常需要使用`java.io`包中的`FileWriter...

    MFC读写TXT文件

    在Microsoft Foundation Classes (MFC)库中,读写文本文件(如TXT文件)是常见的操作。MFC提供了CFile类,这是一个基础类,用于处理文件输入/输出(I/O)操作。下面将详细介绍如何使用MFC进行TXT文件的读写,并讨论...

    用java编程将txt文件数据导入oracle

    "Java编程将TXT文件数据导入Oracle数据库" Java 编程将 TXT 文件数据导入 Oracle 数据库是指使用 Java 语言编写程序将 TXT 文件中的数据导入 Oracle 数据库中,以方便进行计算、统计等操作。下面将详细介绍该知识...

    Java 从txt文件查找数据

    在Java编程语言中,处理文本...综上所述,"Java 从txt文件查找数据"涉及了Java的核心概念和技术,包括文件I/O、字符串处理、正则表达式,以及潜在的优化策略。熟练掌握这些技能对于任何Java开发者来说都是非常重要的。

    Ruby读写txt文件

    1. 替换内容:使用`write`方法替换文件内容。 ```ruby File.open('example.txt', 'w') do |file| file.write('New content here.') end ``` 2. 追加内容:使用`write`方法追加到文件末尾。 ```ruby File.open('...

    Java 读写文件文本文件的示例

    根据给定的文件信息,我们将深入探讨Java读写文件文本文件的关键知识点,这些知识点主要集中在文件的读取、写入以及流的复制等操作上。 ### Java读取文本文件 在Java中,读取文本文件通常涉及到使用`InputStream`...

    java实现文件的读写操作

    在Java编程语言中,文件的读写操作是日常开发中不可或缺的部分。无论是处理用户数据、配置文件,还是进行数据持久化,都需要用到文件的读写功能。本篇将详细介绍如何在Java中实现文件的读写操作,并通过一个小例子...

    ASP.NET读写TXT文件[全浏览器通用]

    在ASP.NET中,读写TXT文件是一项常见的任务,特别是在处理日志记录、数据存储或者简单的文本数据交互时。本篇将深入探讨如何在ASP.NET环境中实现全浏览器通用的TXT文件读写功能。 首先,读取TXT文件的基本步骤包括...

    最简单易懂的一个java读写文件的操作

    本示例将深入讲解如何进行简单易懂的文件读写,包括追加内容和处理换行问题。Java的IO流(Input/Output Stream)是实现这一功能的核心工具。 首先,我们需要引入Java的`java.io`包,其中包含了进行文件操作所需的类...

    用java替换txt里的文字

    在Java编程中,替换文本文件中的特定文字是一项常见的任务,特别是在处理日志、配置文件或者进行文本处理的应用中。本文将详细讲解如何使用Java来实现这个功能,同时也会涉及到一些基本的文件操作和字符串处理技术。...

    java读取txt文件

    使用java语言,通过调用FileReader类读取txt文件中的数据。资源是可直接实现的代码。

    文件读写替换行

    在C#编程中,文件读写和文本替换是常见的操作,尤其在处理数据存储、日志记录或文本处理等场景中。本篇文章将详细介绍如何利用C#进行文件读写,并针对特定内容进行匹配和替换。 首先,让我们了解C#中的基本文件操作...

    Android应用程序中读写txt文本文件的基本方法讲解

    在Android应用程序中,读写txt文本文件是常见的需求,特别是在数据持久化或用户交互时。本文将详细讲解如何使用`context.openFileInput()`和`context.openFileOutput()`这两个方法来实现这一功能。这两个方法属于`...

Global site tag (gtag.js) - Google Analytics