Java字符串与文件相互转换工具
常常需要做一些文本和字符串的处理工作:
1、将文件按照指定编码读入到内存字符串中,对字符串进行操作;
2、将一个字符串写入磁盘上的一个文件。
频繁的上述操作常常令人厌烦,大量的这种代码充斥在业务逻辑中,导致混乱。在此写一个通用的处理类就很有必要了,下面是一个实现。
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.*;
/**
* 字符串与文件相互转换工具
*
* @author leizhimin 2009-7-14 15:54:18
*/
public class StringFileToolkit {
private static Log log = LogFactory.getLog(StringFileToolkit.class);
/**
* 读取文件为一个内存字符串,保持文件原有的换行格式
*
* @param file 文件对象
* @param charset 文件字符集编码
* @return 文件内容的字符串
*/
public static String file2String(File file, String charset) {
StringBuffer sb = new StringBuffer();
try {
LineNumberReader reader = new LineNumberReader(new BufferedReader(new InputStreamReader(new FileInputStream(file), charset)));
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append(System.getProperty("line.separator"));
}
} catch (UnsupportedEncodingException e) {
log.error("读取文件为一个内存字符串失败,失败原因是使用了不支持的字符编码" + charset, e);
} catch (FileNotFoundException e) {
log.error("读取文件为一个内存字符串失败,失败原因所给的文件" + file + "不存在!", e);
} catch (IOException e) {
log.error("读取文件为一个内存字符串失败,失败原因是读取文件异常!", e);
}
return sb.toString();
}
/**
* 将字符串存储为一个文件,当文件不存在时候,自动创建该文件,当文件已存在时候,重写文件的内容,特定情况下,还与操作系统的权限有关。
*
* @param text 字符串
* @param distFile 存储的目标文件
* @return 当存储正确无误时返回true,否则返回false
*/
public static boolean string2File(String text, File distFile) {
if (!distFile.getParentFile().exists()) distFile.getParentFile().mkdirs();
BufferedReader br = null;
BufferedWriter bw = null;
boolean flag = true;
try {
br = new BufferedReader(new StringReader(text));
bw = new BufferedWriter(new FileWriter(distFile));
char buf[] = new char[1024 * 64]; //字符缓冲区
int len;
while ((len = br.read(buf)) != -1) {
bw.write(buf, 0, len);
}
bw.flush();
br.close();
bw.close();
} catch (IOException e) {
flag = false;
log.error("将字符串写入文件发生异常!", e);
}
return flag;
}
public static void main(String[] args) {
String x = file2String(new File("C:\\a.txt"), "GBK");
System.out.println(x);
boolean b = string2File(x, new File("C:\\b.txt"));
System.out.println(b);
}
}
测试结果:
一台服务器到底能带多少台工作站根本无法量化,这要根据工作站配置、网络以及玩游戏的人多还是少等情况而定,甚至于相同的配置不同的技术人员安装出来的系统速度都会不一样。
本文是笔者做无盘的一些经验供初入无盘的新手参考。
true
Process finished with exit code 0
注意,在将字符串写入文件中的时候,最好不要用LineNumberReader,如果是连续文件,当长度很长时候,可能抛出异常。
分享到:
相关推荐
Java 从网络中读取图片 转换成Base64字符串
该工具类包括多重的json字符串或Map或List的相互转换,该文件包括主要的jar包,可以快捷的使用工具
xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...
XML与实体类的相互转换工具,util是工具类,MyTest包含实体类转xml字符串以及XML字符串转实体类的方法,需要引入外部依赖或jar包,亲测可用
文本字符串与byte[], 整个物理文件与byte[], 物理文件内容与byte[], stream与byty[] 之间的相互转换。 从磁盘读取文件,将文件写入磁盘。
将java的jar包打包成exe文件用exe4j这个工具,我也是新下载的 以及Java文件导出jar包的操作
使用excel表格统一管理字符串,实现String.xml 和Excel 相互转换
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
将图片转换成Base64编码 对字节数组字符串进行Base64解码并生成图片 Base64字符串转byte[] 判断图片base64字符串的文件格式 字符串转base64
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
当时在linux上写的代码,转到window下就全部是,自己写的一个小工具类,可以实现UTF-8与GBK之间相互转码。程序开发完后,指定路径,可以实现将文件的编码装换成自己想要的格式,里面有注释
Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多...
字符串转ASCII码、字符串转Unicode、字符串完全转Unicode、ASCII码转字符串、ASCII码转Unicode、Unicode转字符串、完全Unicode转字符串。 CodeConverter有3个版本可选,差别仅在于Unicode转换功能的实现上,其他...
字符串转ASCII码、字符串转Unicode、字符串完全转Unicode、ASCII码转字符串、ASCII码转Unicode、Unicode转字符串、完全Unicode转字符串。 CodeConverter有3个版本可选,差别仅在于Unicode转换功能的实现上,其他...
Base64与byte[]相互转换 将base64转换为byte[] 转byet[]换为base64 并在base64中去掉换行