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;
/**
* 读入两个文件,写入一个文件测试字符编码问题 (0 表示: GBK 1 表示: utf-8)
* readA readB writer result
* 0 0 0 ok
* 0 0 1 ok
* 0 1 0 乱码(前ok后乱码) 因为前面的读和写一致
* 0 1 1 ok
* 1 0 0 乱码(前乱码后ok) 因为后面的读和写一致
* 1 0 1 ok
* 1 1 0 乱码(前后都是乱码)
* 1 1 1 ok
*
* @author xiejiaohui (2013-1-11)
*
*/
public class LuanMaTest {
public static void main(String[] args) throws Exception {
printNowDate();
// 中国银行|农业银行
// 建设银行|交通银行
File R_A_0 = new File("d:\\Reader_A_GBK.txt"); // 保存格式为:ascii
File R_A_1 = new File("d:\\Reader_A_utf-8.txt"); // 保存格式为:utf-8
// 工商银行|招商银行
// 商业银行|村镇银行
File R_B_0 = new File("d:\\Reader_B_GBK.txt"); // 保存格式为:ascii
File R_B_1 = new File("d:\\Reader_B_utf-8.txt"); // 保存格式为:utf-8
File W_0_0_0 = new File("d:\\W_0_0_0.txt");
File W_0_0_1 = new File("d:\\W_0_0_1.txt");
File W_0_1_0 = new File("d:\\W_0_1_0.txt");
File W_0_1_1 = new File("d:\\W_0_1_1.txt");
File W_1_0_0 = new File("d:\\W_1_0_0.txt");
File W_1_0_1 = new File("d:\\W_1_0_1.txt");
File W_1_1_0 = new File("d:\\W_1_1_0.txt");
File W_1_1_1 = new File("d:\\W_1_1_1.txt");
BufferedReader R_A_0_bf = null;
BufferedReader R_A_1_bf = null;
BufferedReader R_B_0_bf = null;
BufferedReader R_B_1_bf = null;
BufferedWriter W_0_0_0_bf = null;
BufferedWriter W_0_0_1_bf = null;
BufferedWriter W_0_1_0_bf = null;
BufferedWriter W_0_1_1_bf = null;
BufferedWriter W_1_0_0_bf = null;
BufferedWriter W_1_0_1_bf = null;
BufferedWriter W_1_1_0_bf = null;
BufferedWriter W_1_1_1_bf = null;
// 0 0 0
action(R_A_0, "GBK", R_A_0_bf, R_B_0, "GBK", R_B_0_bf, W_0_0_0, "GBK", W_0_0_0_bf);
// 0 0 1
action(R_A_0, "GBK", R_A_0_bf, R_B_0, "GBK", R_B_0_bf, W_0_0_1, "utf-8", W_0_0_1_bf);
// 0 1 0
action(R_A_0, "GBK", R_A_0_bf, R_B_1, "utf-8", R_B_1_bf, W_0_1_0, "GBK", W_0_1_0_bf);
// 0 1 1
action(R_A_0, "GBK", R_A_0_bf, R_B_1, "utf-8", R_B_1_bf, W_0_1_1, "utf-8", W_0_1_1_bf);
// 1 0 0
action(R_A_1, "utf-8", R_A_1_bf, R_B_0, "GBK", R_B_0_bf, W_1_0_0, "GBK", W_1_0_0_bf);
// 1 0 1
action(R_A_1, "utf-8", R_A_1_bf, R_B_0, "GBK", R_B_0_bf, W_1_0_1, "utf-8", W_1_0_1_bf);
// 1 1 0
action(R_A_1, "utf-8", R_A_1_bf, R_B_1, "utf-8", R_B_1_bf, W_1_1_0, "GBK", W_1_1_0_bf);
// 1 1 1
action(R_A_1, "utf-8", R_A_1_bf, R_B_1, "utf-8", R_B_1_bf, W_1_1_1, "utf-8", W_1_1_1_bf);
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()));
}
public static void action(
File readFileA, String readFileAFmt, BufferedReader bufferedReaderA,
File readFileB, String readFileBFmt, BufferedReader bufferedReaderB,
File WriteFile, String writeFileFmt, BufferedWriter bufferedWriter)
throws Exception {
String s1;
String s2;
bufferedReaderA = new BufferedReader(new InputStreamReader(new FileInputStream(readFileA), readFileAFmt));
bufferedReaderB = new BufferedReader(new InputStreamReader(new FileInputStream(readFileB), readFileBFmt));
bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(WriteFile), writeFileFmt));
while ((s1 = bufferedReaderA.readLine()) != null) {
while ((s2 = bufferedReaderB.readLine()) != null) {
String[] s_l = s1.split("\\|");
String[] s_2 = s2.split("\\|");
bufferedWriter.append(s_l[1] + "____" + s_2[1] + "\n");
println(s_l[0] + "____" + s_l[1] + "____" + s_2[0] + "____" + s_2[1]);
}
}
bufferedReaderA.close();
bufferedReaderB.close();
bufferedWriter.close();
}
}
分享到:
相关推荐
改程序实现了简单的java的文件读取以及写入的操作
在给定的Java代码中,我们可以看到,程序首先定义了写入文件的路径、切分文件的路径、数据的个数、子文件的个数、精度等变量,然后使用WriteData方法将大数据文件写入到指定的路径中。WriteData方法使用FileWriter和...
Java中提供了多种文件写入方式,例如使用FileWriter、BufferedWriter、PrintWriter等。在这里,我们使用FileWriter来演示文件写入的过程。 1. 创建文件对象 首先,我们需要创建一个文件对象,用于指定写入文件的...
在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的
使用 Java 实现对 dbf 文件的简单读写 Java 是一种广泛使用的编程语言...使用 Java 实现对 dbf 文件的简单读写需要遵循一定的步骤和类的使用。通过上述代码实现,可以实现对 dbf 文件的读写操作,满足实际应用的需求。
在Java编程中,读取文件、对数据进行排序并重新写入文件是常见的操作,尤其在数据处理和分析场景中。下面将详细讲解这个过程,包括相关知识点和具体实现。 首先,我们需要导入Java的`java.io`包,该包包含了处理...
java利用io技术创建文件夹、读取txt文件、写入txt文件(覆盖、不覆盖均有)
- 使用`PrintWriter`或者`BufferedWriter`可以指定字符编码写入文件。例如: ```java FileOutputStream fos = new FileOutputStream("path_to_file.csv"); OutputStreamWriter osw = new OutputStreamWriter(fos...
在Java编程中,读写文件是一项基础且重要的任务,...以上就是关于“Java读写文件(txt)”的知识点,包括文件的读取、内容转换、正则匹配以及文件的写入。希望这些内容能帮助你理解和掌握Java在文件操作上的基本技能。
当处理包含文本数据的文件时,通常使用`java.io.InputStreamReader`和`java.io.Reader`类按字符读取。这样可以处理字符编码问题,例如UTF-8。以下是如何按字符读取文件的例子: ```java Reader reader = new ...
### HDF5 文件结构以及基于 Java 的读写 #### HDF 概述 HDF(Hierarchical Data Format)是一种自我描述...理解 HDF 文件结构和如何使用 Java 进行读写操作对于从事科学计算和数据分析的研究人员来说是非常有价值的。
`java.io.File`类是Java中用于文件和目录操作的基础类。它可以用来创建、删除、重命名文件和目录,获取文件属性等。例如,创建一个新文件: ```java File file = new File("newFile.txt"); if (!file.exists())...
不同的操作系统、软件可能使用不同的默认编码格式,这就会导致在跨平台或跨软件间读写文件时出现乱码问题。因此,在处理文件时,明确指定文件的编码格式是十分重要的。 #### 三、Java读取XML文件 对于XML文件的读取...
同时,为了方便操作,可以创建一个DXFWriter类,封装图层管理、实体创建和文件写入等功能。例如,创建直线的函数可以接收起点和终点坐标,然后将其转换成DXF格式的字符串并写入文件。 为了实现这个功能,你可以参考...
通过上述分析,我们可以看到Java读取和写入CSV文件的过程涉及到多个步骤,包括初始化读写器、循环读取或写入数据、异常处理以及资源释放。正确地理解和应用这些步骤对于高效处理CSV文件至关重要。 此外,使用日志...
Java版本的NetCDF库使得开发者能够在Java环境中方便地进行NetCDF文件的读取和写入操作。 1. **NetCDF简介** - NetCDF是一种通用的数据模型,不仅定义了数据结构,还包含了元数据,用于描述数据的含义和布局。 - ...
在提供的压缩包中,有一个名为"ucanaccess-2.0.9.2.jar"的文件,这是UCanAccess驱动,它是一个开源的Java库,允许Java应用程序直接操作.MDB和.ACCDB格式的Access数据库,而无需安装任何Microsoft软件。要使用这个...
java读取文件大全 写入字节流 读取字节流 在实际运用中相当的广泛 大家共享下资料
shp文件:地理信息系统,也被称作GIS,它主要的扩展类型是SHAPEFILE (.SHP),一个包含了矢量地理空间数据的流行文件格式,描述了几何形态,点,线和多边形...该方法通过java代码实现将shp文件的数据读取以及存入数据库