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

时间:2023-06-18 10:13:01 

可以指定编码如: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));
 }
}

标签:java,指定编码,文件读取
0
投稿

猜你喜欢

  • C#中[]的几种用法示例代码

    2022-03-20 05:50:46
  • Android UI效果之绘图篇(二)

    2022-12-06 00:49:15
  • Java生成压缩文件的实例代码

    2023-02-04 21:11:09
  • Spring Data JPA 设置字段默认值方式

    2021-08-13 07:27:06
  • 10种提升android运行效率的建议

    2022-08-15 23:45:41
  • Java用三元运算符判断奇数和偶数的简单实现

    2023-07-24 16:54:03
  • RecyclerView的使用之HelloWorld

    2023-10-24 08:14:13
  • Android自定义圆形进度条

    2021-08-01 14:29:28
  • C语言 MD5的源码实例详解

    2022-12-22 05:37:16
  • Spring Boot集成Ehcache缓存解决方式

    2023-05-13 08:27:27
  • SpringBoot实现接口数据的加解密功能

    2023-06-30 00:11:01
  • 浅谈C# winForm 窗体闪烁的问题

    2023-06-10 09:46:07
  • 基于Freemarker和xml实现Java导出word

    2022-07-11 23:15:12
  • JDK常用命令jps jinfo jstat的具体说明与示例

    2021-08-09 16:03:30
  • Spring Boot加密配置文件特殊内容的示例代码详解

    2023-09-18 08:47:24
  • Java实体类不要使用基本类型的知识点总结

    2023-02-21 10:04:49
  • springboot集成fastDfs过程代码实例

    2023-02-21 19:42:20
  • IDEA搭建dubbo项目的过程及存在的问题

    2023-10-15 17:56:53
  • Android使用Room操作数据库流程详解

    2023-03-21 21:00:31
  • 关于springboot加载yml配置文件的no字段自动转义问题

    2021-11-02 15:47:48
  • asp之家 软件编程 m.aspxhome.com