RandomAccessFile乱码问题

package fengke.filedemo;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
 * RandomAccessFileDemoChina乱码问题
 * @author 锋客
 * 内容:
 *    String s=new String(raf_open.readLine().getBytes("ISO-8859-1"),"utf-8");
 */

public class RandomAccessFileDemoChina {

public static void main(String[] args) throws IOException {
  //写入
  File file=new File("e:\\luanma.txt");
  file.createNewFile();
  try {
   RandomAccessFile raf=new RandomAccessFile(file, "rw");
   raf.writeUTF("晋城,锋客到此一游!");
   raf.close();
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  //输出
  RandomAccessFile raf_open=new RandomAccessFile(file, "r");
  System.out.println("乱码:"+raf_open.readLine());
  raf_open.seek(0);//必须规到0处
  //readLine的方式会自动将编码变成ISO-8859-1,后一个是自己的文本编码格式
  String s=new String(raf_open.readLine().getBytes("ISO-8859-1"),"utf-8");
  System.out.println(s);
 }

}

时间: 2024-10-15 05:05:53

RandomAccessFile乱码问题的相关文章

RandomAccessFile 文件读写中文乱码解决方案!

RandomAccessFile 读写文件时,不管文件中保存的数据编码格式是什么   使用 RandomAccessFile对象方法的 readLine() 都会将编码格式转换成 ISO-8859-1 所以 输出显示是还要在进行一次转码 例子: package fileReadAndWrite; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; /*

深入理解JAVA I/O系列四:RandomAccessFile

一.简述 这个是JDK上的截图,我们可以看到它的父类是Object,没有继承字节流.字符流家族中任何一个类.并且它实现了DataInput.DataOutput这两个接口,也就意味着这个类既可以读也可以写. 二.存在的意义 1.是JAVA I/O流体系中功能最丰富的文件内容访问类,它提供了众多方法来访问文件内容. 2.由于可以自由访问文件的任意位置,所以如果需要访问文件的部分内容,RandomAccessFile将是更好的选择. 3.可以用来访问保存数据记录的文件,文件的记录的大小不必相同,但是

【Java IO流】RandomAccessFile类的使用

RandomAccessFile类的使用 RandomAccessFile类是java提供的对文件内容的访问,既可以读文件,也可以写文件. 支持随机访问文件,可以访问文件的任意位置. RandomAccessFile类实现步骤 (1)文件模型 第一步要知道,在硬盘上的文件时是以byte byte byte存储的,是数据的集合. (2)打开文件 打开文件硬盘上的文件有两种模式:“rw”(读写),“r”(只读).可以用RandomAccessFile类来指定打开文件的模式,如: RandomAcce

Java IO读写中文各种乱码问题 【转】

Java IO读写中文各种乱码问题 转自:http://blog.sina.com.cn/s/blog_484ab56f0101muzh.html java.io.*读写中文各种乱码,很费劲.不完全解决方法如下: 对于Reader,直接使用Reader系列读取中文会乱码,需要先生成InputStream,再通过InputStreamReader转换为Reader,同时设定编码,才能避免乱码.如 FileInputStream fis = new FileInputStream("D:/a.txt

Java之RandomAccessFile小结

今天跟大家分享一下javase中的关于I/O的操作: 有时我们需要在文件的末尾追加一些内容,在这时用RandomAccessFile就很好. 这个类有两个构造方法: RandomAccessFile(File file, String mode)           创建从中读取和向其中写入(可选)的随机访问文件流,该文件由 File 参数指定. RandomAccessFile(String name, String mode)           创建从中读取和向其中写入(可选)的随机访问文

读取文件任意位置的内容——RandomAccessFile

http://www.cnblogs.com/Sunw/p/3801145.html http://www.cnblogs.com/dukc/p/4776868.html http://www.cnblogs.com/zhujiabin/p/5660541.html 总结: 1.构造方法:RandomAccessFile有两个构造方法 (1) RandomAccessFile(File file, String mode) (2) RandomAccessFile(String filepath

【文件处理】RandomAccessFile

一,RandomAccessFile的用途: 使用RandomAccessFile的最大好处在于,一般的InputStream和OutputStream类对于文件都是顺序读取的,不能跳跃读取数据.而RandomAccessFile类可以通过seek或者skipBytes方法来读取数据指针,从而达到任意提取数据的效果.另外还可以通过选择不同数据类型的方式来对数据进行读取或者编写.要强调的是如果文件编写时选择的是UTF-8的方式的话,那么读取也必须是通过读取UTF-8的方式.不然会出现乱码. 二,R

Java IO(二)--RandomAccessFile基本使用

RandomAccessFile: 翻译过来就是任意修改文件,可以从文件的任意位置进行修改,迅雷的下载就是通过多个线程同时读取下载文件.例如,把一个文件分为四 部分,四个线程同时下载,最后进行内容拼接 public class RandomAccessFile implements DataOutput, DataInput, Closeable { public RandomAccessFile(String name, String mode); public RandomAccessFil

Python cmd 中文显示乱码

方法一:# -*- coding:utf-8 -*- content = "我是中文" content_unicode = content.decode("utf-8") content_gbk = content_unicode.encode("gbk") print content_gbk 方法二: 解决非常简单 先引入import sys 再加一句:type=sys.getfilesystemencoding() 然后在输出乱码的数据的时候