`

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

    博客分类:
  • 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环境下,可以...

    python读取excel指定列数据并写入到新的excel方法

    需要注意的是,上述代码示例使用的是xlrd和xlwt两个库来分别完成读取和写入操作。在实际应用中,若需要写入xlsx格式的Excel文件,则需要更换为openpyxl或xlutils库来完成写入操作。此外,代码中提到的“label”参数...

    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`函数...

    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`的文件并以只读模式打开。文件路径可以是绝对路径,也可以是相对路径,如...

    易语言取指定文本行内容

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

    Java基础之文件压缩器

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

    python习题

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

    C文件操作(合并与分解)

    文件合并通常涉及将两个或多个文件的内容追加到一个新文件或现有文件中。以下是一个简单的合并文件的示例: ```c #include void mergeFiles(char *file1, char *file2, char *output) { FILE *fp1, *fp2, *out; ...

Global site tag (gtag.js) - Google Analytics