`

读取两个文件中的行数,写入第三个文件

    博客分类:
  • java
 
阅读更多
有一个联行号的文件,和一个银行文件,需要读取联行号文件中的某行,用银行文件中的行替换,联行号文件的第四列编号为银行文件的编号,需要把银行名称和银行网点显示在第三个文件中。

联行号文件的内容如下:


105588073429,,,105,105581000018,,,,5880,,,,中国建设银行股份有限公司顺德大良支行,,,,,,,,,,,,,,
105588073437,,,105,105581000018,,,,5880,,,,中国建设银行股份有限公司顺德锦湖支行,,,,,,,,,,,,,,
//以下省略


银行文件的内容如下:

104|中国银行
105|中国建设银行
313|城市商业银行
314|农村商业银行
//以下省略


结果文件

中国建设银行,中国建设银行股份有限公司顺德大良支行
中国建设银行,中国建设银行股份有限公司顺德锦湖支行
//以下省略


package com.xjh.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 联行号的拆分 (2013-01-11)
 * @author xiejiaohui
 *
 */
public class LianHanghao {
	
	public static void main(String[] args) throws Exception {
		printNowDate();
		File lianHangHao_file = new File("d:\\LianHangHao3.txt");
		File bankCode_file = new File("d:\\BankCode.txt");
		File result_file = new File("d:\\result.txt");
		
//		BufferedReader lianHanghao = new BufferedReader(new FileReader("d:\\LianHangHao2.txt"));
//		BufferedReader lianHanghao = new BufferedReader(new InputStreamReader(new FileInputStream(lianHangHao_file),"GB2312")); 
		BufferedReader lianHanghao = new BufferedReader(new InputStreamReader(new FileInputStream(lianHangHao_file),"GBK"));

//		FileWriter result_bw = new FileWriter(new File("d:\\result.txt"));
//		BufferedWriter result_bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(result_file), "utf-8"));
//		BufferedWriter result_bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(result_file), "GB2312"));
		BufferedWriter result_bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(result_file), "GBK"));
		
		String lianHanghao_line;
		String bankCode_line;
		try {
			while ((lianHanghao_line = lianHanghao.readLine()) != null) {
				if (!lianHanghao_line.contains(",")) {
					if (lianHanghao_line.length() > 0) {
						println("这行格式有问题: " + lianHanghao_line);
					}
					continue;
				}
				String[] l_h_h = lianHanghao_line.split(",");
//				BufferedReader bankCode = new BufferedReader(new InputStreamReader(new FileInputStream(bankCode_file),"utf-8"));
//				BufferedReader bankCode = new BufferedReader(new InputStreamReader(new FileInputStream(bankCode_file),"GB2312")); 
				BufferedReader bankCode = new BufferedReader(new InputStreamReader(new FileInputStream(bankCode_file),"GBK"));
				while ((bankCode_line = bankCode.readLine()) != null) {
					String[] b_l = bankCode_line.split("\\|");
					if (l_h_h[3].equals(b_l[0])) {
						result_bw.append(b_l[1]);
						break;
					} else {
						continue;
					}
				}
				result_bw.append(",");
				result_bw.append(l_h_h[12]);
				result_bw.append("\n");
				bankCode.close();
			}
		} finally {
			lianHanghao.close();
			result_bw.close();
		}
		printNowDate();
		}
	
	public static void println(String input) {
		System.out.println(input);
	}
	
	public static void printNowDate() {
		println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
	}

}



这个程序需要读取两个文件,写入一个文件,我得出如下情况

如果读入的两个文件,保存的格式都是  ANSI/ASCII 则读取文件的InputStreamReader必须为GBK否则有乱码

如果读取的两个文件,保存的格式都是 UTF-8 则读取文件的InputStreamReader必须为utf-8否则有乱码

两个读入的文件,一个是 UTF-8 保存的,另外一个是 ANSI/ASCII 保存,只要读取文件的 InputStreamReader 格式跟文件保存格式保持一致,不会出现乱码。

分享到:
评论

相关推荐

    C#编写的读取任何版本的Excel文件,并写入二维数组中。

    2. **使用库**:由于.NET框架标准库并不直接支持读写Excel文件,我们需要依赖第三方库。两个常用的库是: - **NPOI**:这是一个开源库,用于读写Microsoft Office格式,包括Excel。它支持`.xls`和`.xlsx`格式。 - ...

    C#文本文件操作实例---杨辉三角形写入读出

    在C#中,进行文本文件操作主要涉及到System.IO命名空间下的类,如StreamWriter用于写入文件,StreamReader用于读取文件。下面,我们分步骤讲解如何实现杨辉三角形的写入和读出: 1. **写入杨辉三角形到文件**: - ...

    JAVA流比较两个TXT文件数据

    3. 比较文件内容:逐行读取两个文件的内容,直到文件末尾。如果某一行内容不匹配,则可以判断两个文件数据不一致。 ```java String line1, line2; while ((line1 = br1.readLine()) != null && (line2 = br2....

    java读取写入2007版excel所用的包

    在本篇文章中,我们将深入探讨如何使用Java来读取和写入2007版Excel文件,并介绍相关的Java包。 首先,最常用的库是Apache POI项目提供的HSSF和XSSF。HSSF是用于处理.xls文件的API,而XSSF则是针对.xlsx文件。这两...

    matlab中如何读取TXT数据文件.docx

    这个函数通过`fopen`打开文件,使用`fgetl`逐行读取直到文件末尾,然后在指定行数时将内容写入新文件。如果你想读取特定几行,只需修改条件判断即可。 ```matlab function dataout=dataread(filein,fileout,line) ...

    Win32汇编课程大作业--矩阵相乘:先后输入存储矩阵的两个文件名,屏幕显示矩阵,后将计算结果输出到指定目标文件中和屏幕显示结果

    程序需要读取两个输入文件,每个文件分别存储一个矩阵,然后进行矩阵乘法运算。这涉及到对文件的打开、读取、关闭操作,以及对数据的解析和存储。文件操作通常使用系统调用或API函数完成,例如在Windows环境下,可以...

    Labview读取Excel表格到数组中,并获取行列信息

    在某些情况下,你可能需要考虑使用其他数据导入方法,如使用LabVIEW的CSV文件读取功能,或者利用第三方库如JACE(Java for LabVIEW)来提高效率和兼容性。 总的来说,"Labview读取Excel表格到数组中,并获取行列...

    Python第三方库在Excel文件读写中的应用.pdf

    本文主要探讨了Python第三方库在Excel文件读写中的应用,包括pyExcelerator和xlrd这两个库的具体使用方法和它们在实际操作中的优劣比较。 pyExcelerator是专门用于操作Excel文件的一个第三方类库模块。它不仅能够...

    matlab读取txt和excel.pdf

    例子中展示了如何读取名为'matlab3.txt'的文本文件,使用`fscanf`读取每一行的第一个字符串: ```matlab fid=fopen('matlab3.txt','r'); a=fscanf(fid,'%s'); ``` 2. **写入文本文件**: 使用`fprintf`函数...

    易语言取指定文本行内容

    易语言提供了“打开文件”和“读取文本文件”两个命令来读取文本文件。首先,我们需要使用“打开文件”命令打开一个文本文件,然后用“读取文本文件”命令逐行读取文件内容,将每一行保存到一个变量中。 2. **定位...

    Python实现读取并写入Excel文件过程解析

    根据题目描述,我们需要比较两个Excel文件中的数据,并将第一个文件中存在但第二个文件中不存在的数据输出到新的Excel文件中。具体实现如下: 1. **定义读取函数**: ```python def read_xlrd(excel_file, sheet_...

    Java-数组实验.pdf

    FileWrite类用于将随机整数数组写入文本文件中,而ReadData类用于从文本文件中读取数据并将其存储在数组中。 三、FileWrite类 FileWrite类有两个构造函数。第一个构造函数的参数是fileName、n和size,其中fileName...

    如何编写批处理文件批处理文件批处理文件

    (注意是两个等号) 如if "%1"=="a" format a: if {%1}=={} goto noparms if {%2}=={} goto noparms 2、if exist 文件名 待执行的命令 如果有指定的文件,则条件成立,运行命令,否则运行下一句。 如if exist ...

    php写入数据到CSV文件的方法

    7. 资源管理:本例中使用了两个文件句柄,分别用于读取和写入操作。在使用完文件句柄后,我们及时地关闭了它们,这是一种良好的资源管理习惯。 8. 性能考虑:在处理大型CSV文件时,可能需要考虑性能问题。通过设置...

    csv生成datagirdview datagirdview转csv源码

    3. 设置`DataGridView`的列数,根据CSV文件的第一行确定列名。 4. 将每行数据添加到`DataGridView.Rows`集合中。 **从DataGridView导出数据到CSV文件:** 1. 创建一个字符串数组,用于存储要写入文件的行。 2. 遍历...

    python3:excel操作之读取数据并返回字典 + 写入的案例

    本案例主要介绍如何使用Python3进行Excel文件的操作,包括读取数据并将其转换为字典形式以及向Excel文件中写入数据。案例通过实际代码展示了如何利用`openpyxl`库来实现Excel文件的写入功能,以及使用`xlrd`库来完成...

    7第七周1

    在Python中,可以使用`open()`函数来打开文件,其接受两个参数:文件名和打开模式。例如,`f = open('file.txt', 'r')`将打开名为`file.txt`的文件并以只读模式打开。文件路径可以是绝对路径,也可以是相对路径,如...

    Java基础之文件压缩器

    这两个类分别用于创建ZIP格式的压缩文件和读取解压缩ZIP文件。 1. **ZipOutputStream**: 这个类允许我们向一个输出流写入ZIP文件条目。创建一个`ZipOutputStream`对象,然后通过调用`putNextEntry`方法开始一个新的...

    python习题

    Python 文件操作是编程中常见的任务,它涉及到读取、写入和处理文件内容。以下是一些关于Python文件操作的关键知识点: 1. **文件访问**:在Python中,可以通过`open()`函数打开一个文件。例如,`open_filename = ...

Global site tag (gtag.js) - Google Analytics