经常需要将数据进行持久化,而我们的文件系统是最古老也是最可靠的保存方式。这里就给出一个在JAVA中把字符串保存到文件中的例子。如下:

package test.base;

import java.io.BufferedWriter;

import java.io.FileOutputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.io.UnsupportedEncodingException;

public class TestString {

public static void main(String[] args) {

TestString test = new TestString();

test.doTest();

}

private void doTest() {

String content = "begin-好的开始是成功的一半!-end\r\n";

try {

content = new String(content.getBytes("UTF-8"), "UTF-8");

} catch (UnsupportedEncodingException ex) {

ex.printStackTrace();

return;

}

System.out.println(content);

saveAsFileOutputStream(content);

saveAsFileWriter(content);

saveAsOutputStreamWriter(content);

}

private void saveAsFileOutputStream(String content) {

String file = "D:/TestStringStream.txt";

FileOutputStream foutput = null;

try {

foutput = new FileOutputStream(file);

foutput.write(content.getBytes("UTF-8"));

foutput.write(content.getBytes());

} catch(IOException ex) {

ex.printStackTrace();

} finally {

try {

foutput.flush();

foutput.close();

} catch (IOException ex) {

ex.printStackTrace();

}

}

System.out.println("文件保存成功。" + file);

}

private void saveAsFileWriter(String content) {

String file = "D:/TestStringWriter.txt";

FileWriter fwriter = null;

try {

fwriter = new FileWriter(file);

fwriter.write(content);

} catch (IOException ex) {

ex.printStackTrace();

} finally {

try {

fwriter.flush();

fwriter.close();

} catch (IOException ex) {

ex.printStackTrace();

}

}

}

private void saveAsOutputStreamWriter(String content) {

String file = "D:/TestStringOutputWriter.txt";

BufferedWriter bwriter = null;

try {

bwriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8"));

bwriter.write(content);

} catch (IOException ex) {

ex.printStackTrace();

} finally {

try {

bwriter.flush();

bwriter.close();

} catch (IOException ex) {

ex.printStackTrace();

}

}

}

}

例子中的三种方法都可以将字符串的内容保存到指定的文件,在三种方法中,我们可以看到第一种saveAsFileOutputStream与第三种saveAsOutputStreamWriter都会出现一个字符编码“UTF-8”,而第二种saveAsFileWriter里面不会有字符编码,因此它会默认的使用系统的默认编码(中文操作系统gb2312,英文操作系统iso-8859-1,当然还会有其它的默认编码的操作系统)。为了不让保存的文件在各种系统间传递的时候出现乱码,我们就用统一的UTF-8编码,于是,对于需要进行以设置特定编码的方式保存到文件的方法,第一种和第三种是可选的。JAVA中默认的情况下采用的编码方式都是操作系统默认的编码方式,当然也可以在开发平台(Eclipse/JBuilder/NetBean)中手动修改JAVA的默认编码方式。拥有统一的一套字符编码是保证汉字在各种情况下不出现乱码的必要前提条件,所以请一定要注意字符编码。

java持久层用文件_JAVA中用三种方法将字符串持久化到文件中相关推荐

  1. Java中用三种方法输出字符串_java中两个字符串连接的三种方法

    java中两个字符串连接有以下三种方法: 第一种方法:使用+: 第二种方法:使用concat(): 第三种方法:使用append(): 如下代码: public class Practice { // ...

  2. php读取文件内容不全,php读取文件内容的三种方法

    //**************第一种读取方式***************************** 代码如下: header("content-type:text/html;chars ...

  3. python一次性读取整个文件-python逐行读取文件内容的三种方法

    一.使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. 二.需要导入import os 三.下面是逐行读取文件内容的三种方法: ...

  4. Linux清空文件内容的三种方法

    Linux清空文件内容的三种方法 测试文件:a.txt 第一种: $> a.txt 第二种: $echo "" > a.txt 第三种: $cat /dev/null ...

  5. linux系统中清空文件内容的三种方法

    1.使用vi/vim命令打开文件后,输入"%d"清空,后保存即可.但当文件内容较大时,处理较慢,命令如下: vim file_name :%d :wq 2.使用cat命令情况,命令 ...

  6. java浮点数化为整数_[Java教程]javascript浮点数转换成整数三种方法

    [Java教程]javascript浮点数转换成整数三种方法 0 2014-06-24 04:00:27 将浮点数转换成整数方法有很多,分享三种常用方法. Summary 暂时我就想到3个方法而已.如 ...

  7. Java程序初始化启动自动执行的三种方法

    目录 @PostConstruct注解 CommandLineRunner接口 ApplicationRunner 接口 @Order注解设置启动顺序 分享一下自己用过的java程序初始化启动自动执行 ...

  8. java web 加载类_Java中用ClassLoader载入各种资源(类、文件、web资源)的方法

    lassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象. ClassLoader负责载入系 ...

  9. Java实现监听文件变化的三种方法,推荐第三种

    背景 在研究规则引擎时,如果规则以文件的形式存储,那么就需要监听指定的目录或文件来感知规则是否变化,进而进行加载.当然,在其他业务场景下,比如想实现配置文件的动态加载.日志文件的监听.FTP文件变动监 ...

最新文章

  1. 利用NetBIOS名称与其他计算机通信
  2. RecycleView Layout 详解
  3. 4.成本核算相关步骤的财务处理
  4. Spark之Spark角色介绍及运行模式
  5. 微软Cloud+AI本地化社区贡献指南
  6. 美团AI全景图:吃喝玩乐背后的黑科技
  7. 阿尔伯塔大学计算机科学本科几年,本科——21阿尔伯塔大学CS专业早录取
  8. leveldb - 并发写入处理
  9. Javascript中this、prototype、constructor的理解
  10. 关于芯片或者功率模块热相关计算
  11. 酷开系统上线共抗疫情版块
  12. R语言 循环 步长 写法
  13. 什么是MKV文件以及如何打开和播放MKV?
  14. 阿兹卡塔防 Azgard Defense 详细攻略
  15. 数独题 HDU - 1426
  16. yar php使用,使用Yar 实现RPC框架
  17. html5网页制作实训日志,网页制作实训日志X.doc
  18. SEGGER J-FLASH V7.82 下载链接
  19. python 中角度与弧度间的转换
  20. facebook 邀请好友

热门文章

  1. 我们推荐的高效工具(转)
  2. Android Browser学习七 书签历史模块: 书签UI的实现
  3. 《Linux内核分析》(二)——从一个简单Linux内核分析进程切换原理
  4. linux 双显卡 黑屏 amd,ubuntu上AMD显卡驱动黑屏问题的一种解决办法
  5. python积分计算_fx-CG系列图形计算器CAS应用程序Khicasen
  6. win10 flashcs6不能用了_听说这版win10马上不能用了?那就改装“它”,比win7还稳定流畅...
  7. 用python分析拼多多_利用Python分析拼多多上卖的最热的产品, 结果出乎大多数人意料!...
  8. risc 服务器 操作系统,数据中心系统用RISC还是CISC?
  9. 计算机辅助普通话水平测试指导,计算机辅助普通话水平测试指南38563
  10. 华为云linux用户名,玩转华为云服务器ECS:001 如何登录并创建新用户