import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.StringUtils; * @author wxy e-mail:wxypersonal@163.com * @date 创建时间:2017年5月22日 下午3:59:26 * @version 1.0 * @company: xxx科技公司 * @description: InputStreamReader 是字节流向字符流转换的桥梁\ 这个类是按照格式pattern解析 * txt格式文件中的数据. ps: 其实读取其他数据格式文件也是类似的, 比如要读取.dat文件. public class ReadTXT { * 在这里进行测- * @param args public static void main(String[] args) { File file = new File( "E:/wxy-workspace/space01/wxy/resources/222.txt");
			//注意: 这里的file路径自己可以为了测试, 随便变化的, 写一个测试文件全路径即可 
			List<List<Object>> arr = parseTxt(file, "\\.");
			System.out.println(arr);
	 * 注意, 此类进行解析, 是按照gbk默认编码进行解析, 因为InputStreamReader的转换编码就是GBK
	 * @param file
	 *            为解析文件的路径
	 * @param pattern
	 *            解析格式 注意pattern的输入,是否是转义字符来解析的, 如果是, 注意正确的输入,因为split()方法支持正则表达式
	 * @return
	public static List<List<Object>> parseTxt(File file, String pattern) {
		String fileName = file.getName(); // testFile.txt
		if (! StringUtils.isNotEmpty(fileName)) {
			System.out.println("输入参数file错误, 必须精确到文件名.txt后缀全路径才行");
			return null;
		// System.out.println(fileName);
		// 获取后缀名 如果后缀名没有 .   则返回""
		String houZhui = fileName.lastIndexOf(".") == -1 ? "" : fileName
				.substring(fileName.lastIndexOf(".") + 1) ;
		List<List<Object>> listRows = null;//用于返回使用
		if ("txt".equals(houZhui)) {
			BufferedReader bf = null;
			String temp = null;
			try {
				//注意:inputStreamReader是一个字节流向字符流转换的桥梁
//				bf = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
				FileInputStream fis = new FileInputStream(new File(file, ""));
				/** 注意: 我这里吧GBK编码格式写死了, 具体工作中, 需要看txt文件的编码格式, 如果是windows系统默认, 那就是
				 * GBK, 如果是其他的, 那可以改成utf-8,
				 *  */
				bf = new BufferedReader(new InputStreamReader(fis, "GBK"));//从这一句可以看出, 这里可以指定
																			//InputStreamReader的编码格式.
				listRows = new ArrayList<List<Object>>();//用于返回使用
				while ((temp = bf.readLine()) != null) {
					if (temp.replaceAll(" ", "").length() > 0) {
						String[] arr = temp.split(pattern);
						List<Object> row = new ArrayList<Object>();
						for (String string : arr) {//循环遍历上面的数组
							row.add(string);
						listRows.add(row);
			} catch (Exception e) {
				e.printStackTrace();
				System.out.println("txt文件读取失败");
			}finally{
				//在返回之前关闭流
				if (bf != null) {
					try {
						bf.close();
					} catch (IOException e2) {
						//添加日志文件吧
		}else{
			System.out.println("发生异常: 文件的后缀名不是以.txt结尾的");
			return null;
		return listRows;
                                    [code="java"]	
private static List getDatFile(String fileName) throws IOException{
		FileInputStream fis = null;
		ObjectInputStream ois = null;
		List list = new ArrayList();
		Object obj = null...
                                    第一步:首先编写文件操作类FileUtil。1、编写写入文件内容的操作rewrite2、编写读取文件内容的操作readString3、具体实现代码如下所示:import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.F...
                                    该文章讲的仅仅是通过java对于二进制文件解析操作
首先说明一下查看.dat文件的工具:C32Asm,可以通过该工具查看.dat文件,查看模式可以选择十六进制、十进制(我们最终要的是十进制)、八进制、二进制
注:开始解析文件之前,需先了解所要解析的文件数据结构/每个数据项所占的字节长度
public class Main {
public static void main(String[] args) {
//文件所在路径
StringfilePath = "D:\\test";
//文件.
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
                                    对账文件名:PFBBBCCCCCCYYYYMMDD.dat,PF为固定字符,BBB指监管银行代码(bankCode 3位),CCCCCC 指城市代码(6位)YYYYMMDD为对账日期。监管协议编码|监管账号(30位)|交易金额(20位) |监管银行记账流水(30位)|记账日期(10位,YYYY-MM-DD)|第一行:为汇总信息   交易总笔数(6位)|交易总金额(20位)|很成功,很棒 我再拿着map里面的数据去判断是否为有用数据。所以获得数据之后第一行的单独取,其他的一样处理就行。其他各行:为明细信息。
有些文件结尾用dat,然而有的用txt作为后缀,在文件操作方面这个很重要
后缀名无所谓,可以随便取,关键看用什么格式写入。写入方式有二进制和字符串方式,通常约定*.dat用作二进制格式。
*.txt用作字符串格式。字符串格式的文件可以直接用notepad查看内容,但存取速度较慢;二进制格式文件不能直接用notepad查看内容(打开后...
                                    本文实例为大家分享了java批量解析微信dat文件的具体代码,供大家参考,具体内容如下微信图片默认路径:C:\Users\b-eet\Documents\WeChat Files\b-eethoven\FileStorage\Image微信文件利用Xor加密,计算之前需要知道异或值是多少。(好像每个人电脑上面的异或值都不同,在24行更改异或值)异或值可用电脑自带的计算机计算(Xor)package...
                                    所以即时通讯基本上试图做一个“银行”计划。到目前为止(我认为)我已经获得了将对象写入.dat文件供将来使用的方法,并且我希望在每次启动时将这些对象读入ArrayList,以便您可以访问先前创建的帐户。我一直在mainBank.main(mainBank.java:22)处得到“java.lang.IndexOutOfBoundsException”这里是mainBank的代码:import jav...
                                    代码以下是java代码,创建一个weChatImgRevert .java后复制进去就好啦。此处的jdk版本需要1.8以上…,另外三个参数需要改成自己的哦~package main.java.com.example.demo;import java.io.*;import java.util.Arrays;import java.util.HashMap;import java.util.Map;...