文档章节

JAVA IO 工具

night4soul
 night4soul
发布于 2015/11/02 13:27
字数 329
阅读 14
收藏 0
package com;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

/**
 * IO 工具类
 * @author dingpengcheng
 *
 */
public class IoUtil {
	
	/**
	 * 根据给出的filePath和charsetStr读取文件
	 * @param filePath 文件路径
	 * @param charsetStr 字符集名字
	 * @return 文件内容
	 */
	public static String readFromFile(String filePath,String charsetStr){
		StringBuilder str = new StringBuilder();
		try {
			BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), charsetStr));
			try {
				String subStr;
				while((subStr=reader.readLine())!=null){
					str.append(subStr);
					str.append("\n");
				}
			} catch (Exception e) {
				e.printStackTrace();
			}finally {
				reader.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		} 
		return str.toString();
	}
	
	/**
	 * 追加写入文件 , 每次追加换行
	 * @param filePath 文件路径
	 * @param charsetStr 字符集名字
	 * @param content 文件内容
	 */
	public static void writeFile(String filePath, String charsetStr,String content){
		PrintWriter writer = null;
		try {
			writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath,true), charsetStr))) ;
			writer.println(content);
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			writer.close();
		}
	}
	
	/**
	 * 每次写入重新覆盖
	 * @param filePath
	 * @param charsetStr
	 * @param content
	 */
	public static void writeFileNoAppend(String filePath , String charsetStr,String content){
		PrintWriter writer = null;
		try {
			writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath), charsetStr))) ;
			writer.println(content);
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			writer.close();
		}		
	}
	
	/**
	 * 从文件中读取对象
	 * @param filePath 文件路径
	 * @return object对象
	 */
	public static Object readJavaObject(String filePath){
		Object obj= null;
		try {
			ObjectInputStream in = new ObjectInputStream(new FileInputStream(filePath));
			try {
				obj = in.readObject();
			} catch (Exception e) {
				e.printStackTrace();
			}finally {
				in.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return obj;
	}
	
	/**
	 * 向文件中写入对象,必须保证写入对象全部可序列化
	 * @param filePath
	 * @return
	 */
	public static void writeJavaObject(String filePath, Object obj){
		try {
			ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(filePath));
			try {
				out.writeObject(obj);
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				out.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


© 著作权归作者所有

共有 人打赏支持
night4soul
粉丝 0
博文 8
码字总数 3927
作品 0
苏州
私信 提问
Java FileInputStream

一、序言 IO操作,才程序中比较普遍,JAVA 中提出了IO/NIO 的概念,也一直在说NIO 比IO快,一直不知道原因,就想memcache 和ehcache 比较优劣一样,这些东西得自己看看如何实现的,才 知道区...

pczhangtl
2014/08/03
0
0
Java Web 开源框架 Latke 2.4.1 发布,ORM 生成改进

v2.4.1 主要对 MySQL ORM 建表进行了改进,支持生成表/字段注释。 简介 Latke('lɑ:tkə,土豆饼)是一个简单易用的 Java Web 应用开发框架,包含 MVC、IoC/AOP、事件通知、ORM、插件等组件...

88250
2018/04/05
581
0
Java Web 框架 Latke v2.4.39,重写控制器层

简介 Latke('lɑ:tkə,土豆饼)是一个简单易用的 Java Web 应用开发框架,包含 MVC、IoC、事件通知、ORM、插件等组件。 在实体模型上使用 JSON 贯穿前后端,使应用开发更加快捷。这是 Latk...

88250
2018/12/21
0
0
Apache commons (Java常用工具包)简介

Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问http://jakarta.apache.org/commons/index.html BeanUtils Commons-BeanUtils 提供对 Java...

Coder小兵
2012/02/04
0
0
如何成为一个合格的Java程序员

如何成为一个合格的Java程序员 1、语法:必须比较熟悉,在写代码的时候IDE 的编辑器对某一行报错应该能够根据报错信息知道是 什么样的语法错误并且知道任何修正。 2、命令:必须熟悉JDK 带的...

maskleo
2015/04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jenkins安装

https://my.oschina.net/u/593517/blog/1797968 jenkins 安装 https://my.oschina.net/u/593517/blog/3028175 GIT 安装 https://my.oschina.net/u/593517/blog/3028179 maven 安装 插件安装 ......

Gm_ning
22分钟前
2
0
小言服务端解决方案-监控

框架保证方向,整体包容细节 为保证服务端运行平稳正常,owner应使得系统应保有相应的监控:系统监控,业务监控。而服务运行的平稳高效是否有保障跟监控粒度又成直接的正比关系。本文仅针对开...

重城重楼
34分钟前
1
0
搜索引擎(Elasticsearch搜索详解)

学完本课题,你应达成如下目标: 掌握ES搜索API的规则、用法。 掌握各种查询用法 搜索API 搜索API 端点地址 GET /twitter/_search?q=user:kimchy GET /twitter/tweet,user/_search?q=user:...

这很耳东先生
57分钟前
7
0
浅谈如何减少GC的次数

GC会stop the world。会暂停程序的执行,带来延迟的代价。所以在开发中,我们不希望GC的次数过多。 本文将讨论如何在开发中改善各种细节,从而减少GC的次数。 (1)对象不用时最好显式置为 Nu...

浮躁的码农
59分钟前
1
0
jpa 自定义返回对象

任何ORM框架都少不了开放自定义sql的问题。jpa自然也不例外,很多场景需要写复杂sql的。 首先定义一个方法签名,然后打上@Query注解。像下面这样,需要注意nativeQuery,这个表示query中的字...

朝如青丝暮成雪
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部