java按指定编码写入和读取文件内容的类分享

 更新时间:2014年02月20日 15:47:50   作者:  
这篇文章主要介绍了java按指定编码写入和读取文件内容的类,需要的朋友可以参考下

可以指定编码如:utf-8来写入和读取文件。如果文件编码未知,可以通过该方法先得到文件的编码后再指定正确的编码来读取,否则会出现文件乱码问题。

如何识别文件编码请参考:java自动根据文件内容的编码来读取避免乱码

复制代码 代码如下:

package com.zuidaima.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class ReadWriteFileWithEncode {

 public static void write(String path, String content, String encoding)
   throws IOException {
  File file = new File(path);
  file.delete();
  file.createNewFile();
  BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream(file), encoding));
  writer.write(content);
  writer.close();
 }

 public static String read(String path, String encoding) throws IOException {
  String content = "";
  File file = new File(path);
  BufferedReader reader = new BufferedReader(new InputStreamReader(
    new FileInputStream(file), encoding));
  String line = null;
  while ((line = reader.readLine()) != null) {
   content += line + "\n";
  }
  reader.close();
  return content;
 }

 public static void main(String[] args) throws IOException {
  String content = "中文内容";
  String path = "c:/test.txt";
  String encoding = "utf-8";
  ReadWriteFileWithEncode.write(path, content, encoding);
  System.out.println(ReadWriteFileWithEncode.read(path, encoding));
 }
}

相关文章

  • C# TreeNode案例详解

    C# TreeNode案例详解

    这篇文章主要介绍了C# TreeNode案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • IntelliJ IDEA报错Error:java: Compilation failed: internal java compiler error的解决办法

    IntelliJ IDEA报错Error:java: Compilation failed: internal java

    今天小编就为大家分享一篇关于IntelliJ IDEA报错Error:java: Compilation failed: internal java compiler error的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Java使用openssl检测网站是否支持ocsp

    Java使用openssl检测网站是否支持ocsp

    OCSP在线证书状态协议是为了替换CRL而提出来的。对于现代web服务器来说一般都是支持OCSP的,OCSP也是现代web服务器的标配,这篇文章主要介绍了Java使用openssl检测网站是否支持ocsp,需要的朋友可以参考下
    2022-07-07
  • Java实现直接插入排序与折半插入排序的示例详解

    Java实现直接插入排序与折半插入排序的示例详解

    这篇文章主要为大家详细介绍了插入排序中两个常见的排序:直接插入排序与折半插入排序。本文用Java语言实现了这两个排序算法,感兴趣的可以学习一下
    2022-06-06
  • 一名Java高级工程师需要学什么?

    一名Java高级工程师需要学什么?

    作为一名Java高级工程师需要学什么?如何成为一名合格的工程师,这篇文章给了你较为详细的答案,需要的朋友可以参考下
    2017-08-08
  • springboot响应json null值过滤方式

    springboot响应json null值过滤方式

    这篇文章主要介绍了springboot响应json null值过滤方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • JDBC中Statement的Sql注入问题详解

    JDBC中Statement的Sql注入问题详解

    这篇文章主要介绍了JDBC中Statement的Sql注入问题详解,sql注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些输入大都是sql语法里的一些组合,通过执行sql语句进而执行攻击者所要做的操作,需要的朋友可以参考下
    2023-10-10
  • Spring ApplicationContext接口功能详细介绍

    Spring ApplicationContext接口功能详细介绍

    ApplicationContext是Spring应用程序中的中央接口,由于继承了多个组件,使得ApplicationContext拥有了许多Spring的核心功能,如获取bean组件,注册监听事件,加载资源文件等
    2023-02-02
  • SpringBoot整合Druid实现SQL监控和数据库密码加密

    SpringBoot整合Druid实现SQL监控和数据库密码加密

    Druid连接池是阿里巴巴开源的数据库连接池项目,Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能,本文给大家介绍了SpringBoot整合Druid实现SQL监控和数据库密码加密,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-06-06
  • Java消息队列Kafka的简单概述

    Java消息队列Kafka的简单概述

    这篇文章主要介绍了Java消息队列Kafka的简单概述,消息系统负责将数据从一个应用程序传输到另一个应用程序,应用程序可以专注于数据,不担心如何共享它,需要的朋友可以参考下
    2023-07-07

最新评论