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,如果是连续文件,当长度很长时候,可能抛出异常。
分享到:
相关推荐
1. **二进制转字符串**:将二进制数据转换为字符串。这通常涉及到将二进制数据视作一系列字节,然后用某种编码(如ASCII、UTF-8等)解释这些字节,生成对应的字符序列。例如,一个字节的二进制值`01001000`对应ASCII...
Java 文件转换应用源码项目是一个基于Java 1.8开发的实用工具,它提供了丰富的文件转换功能,包括PDF与Word之间的互相转换、图像格式转换、PDF转为图片以及Base64编码与文件之间的相互转换。这个项目对于需要处理...
在IT领域,图片和字符串之间的转换是一种常见的需求,特别是在数据存储、编码解码以及信息安全等方面。...通过理解以上知识点,开发者可以有效地利用这个工具类进行图片和字符串的相互转换,满足各种实际需求。
在Android应用开发中,国际...总的来说,`android String.xml Excel 相互转换工具`是Android应用开发中的利器,它们简化了国际化过程中字符串资源的管理,提高了开发效率,是每个进行多语言支持的项目必备的辅助工具。
Google Gson库提供了一个强大的工具,使得Java对象与JSON字符串之间的转换变得简单易行。本文将详细介绍如何利用Google Gson库进行JSON字符串与对象之间的相互转换。 首先,我们需要了解Gson的核心概念。Gson库通过...
标题中的“exe4j+sqljdbc4.jar+ojdbc4.jar+sql字符串与datetime相互转换”涉及了几个关键的IT知识点,包括Java程序打包、数据库连接以及数据类型的转换。下面我将逐一详细解释这些概念。 1. **exe4j**: exe4j是一个...
在描述中提到的jar包和工具类,是已经封装好的Java代码,用于简化Base64的图片和字符串转换操作。这些工具类通常会包含以下方法: 1. `encodeImageToBase64`: 这个方法接收一个`BufferedImage`对象(Java中的图片...
在Java编程中,将网络上的图片读取并转换为Base64字符串是一项常见的任务,尤其在Web开发中,这样的操作可以用于数据传输或者存储。Base64是一种编码方式,能够将二进制数据转化为可打印的ASCII字符,方便在网络上...
在Java中,每个字符串都有一个默认的字符编码,通常是平台相关的(例如,Windows系统通常默认使用GBK,而Linux系统则可能是UTF-8)。 Java提供了`java.nio.charset`包来处理字符编码。其中,`Charset`类是核心,它...
在Java开发中,JAXB(Java Architecture for XML Binding)是一个标准的API,用于将XML文档与Java对象之间进行互相转换。这个技术对于处理XML数据,尤其是解析和生成XML文档非常有用。当我们面临XML文档中存在嵌套子...
xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...
总结一下,`String.xml Excel 相互转换工具`是Android应用开发中进行字符串资源管理和国际化的利器,它通过将XML与Excel的便捷性结合,简化了文本编辑和协作流程,提升了工作效率。通过分析提供的文件,我们可以推测...
总结来说,Google的Gson库是Java开发中处理JSON数据的强大工具,它提供了一种简单且灵活的方式来将JSON字符串与Java对象相互转换,使得数据处理变得更加便捷。无论是在服务器端处理来自客户端的请求,还是在客户端...
在Java中,我们经常需要将JSON字符串与Java对象进行互相转换,以便处理和存储数据。这篇博客将探讨如何在Java中实现这一过程。 一、JSON简介 JSON是一种基于文本的格式,它使用键值对来表示数据,结构清晰,易于...
在Java开发中,将XML数据与Java实体类进行相互转换是非常常见的需求,这有助于简化数据处理和存储。本文将详细介绍如何使用工具类进行XML与实体类的转换,并探讨相关依赖和实现方法。 首先,XML转换为Java实体类的...
Java 二进制数据与 16 进制字符串相互转换方法 Java 中,二进制数据和 16 进制字符串是两种常见的数据表示形式,在实际编程过程中,我们经常需要将这两种格式相互转换。本文将详细介绍 Java 中二进制数据与 16 进制...
这个“地区码与地区名称相互转换java代码11.zip”文件很可能是提供了一个Java实现,用于解决此类问题。下面将详细讨论相关知识点。 1. 地区码(Area Code): 地区码通常指的是国家、省份、城市等地理区域的编码,...
Java与JSON互相转换是开发过程中常见的需求,尤其是在服务器端与前端之间传递数据时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性、易写性和高效性,被广泛应用于Web服务。Java则是...
2. 16进制转换:能够将数字、字符串或内存地址在16进制和十进制之间相互转换,同时可能支持二进制和八进制。 3. PE地址处理:提供查看和修改PE文件头部信息的能力,支持虚拟地址到文件偏移的转换,以及反汇编功能,...
在Android开发中,数据交换和持久化经常涉及到实体类(Entity Class)与JSON字符串之间的转换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。实体...