笔记(十):RandomAccessFile类(三):文件的复制

向一个文本中写入数据

使用byte类型数组写入数据到文本中

package com.tedu.raf;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * 向一个文件中写入文本,尤其是中文文本
 * @author Wildmess
 *
 */
public class WriteStringDemo {
	public static void main(String[] args) throws IOException {
		RandomAccessFile raf = new RandomAccessFile("raf2.txt", "rw");
		String str = "中华人民共和国!";
		
		/*
		 * String对象的方法
		 * byte[] getBytes();
		 * 功能是将字符串中的字符转换成字节
		 * 按照系统默认的字符集
		 * 
		 * byte[] getBytes(String csn)
		 * 功能是将字符串中的字符转换成字节
		 * 但是是按照指定的字符集
		 */
		
		//可能部分电脑使用默认字符集,可以直接存入中文
		//byte[] data = str.getBytes();
		//raf.write(data);
		
		//但部分不行,就要使用下面的代码,自己指定字符集
		byte[] data = str.getBytes("GBK");
		raf.write(data);
		System.out.println("写入完成!");
		
		raf.close();	
	}
}

PS:可以使用下面的方式查看自己的默认字符集并进行更改:
1.选择自己使用的文件,右键->Properties
2.红框中的就是自己目前所在使用的字符集编码,可在Other中选择自己想默认使用。
在这里插入图片描述

向一个文本中读出数据

package com.tedu.raf;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * 向一个文件中读出文本,尤其是中文文本
 * @author Wildmess
 *
 */
public class ReadStringDemo {
	public static void main(String[] args) throws IOException {
		RandomAccessFile raf = new RandomAccessFile("raf2.txt", "r");
		
		byte[] data = new byte[(int)raf.length()];
		//读取文件中的所有字节到data数组
		raf.read(data);
		/*
		 * String类中有一个构造方法
		 * String(byte[] data ,String scn)
		 * data是字节数值,会按照scn指定的字符集解析字符,并创建对象
		 */
		
		String str = new String(data,"GBK");
		System.out.println(str);
		raf.close();	
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值