`

JAVA中,从一个文件读取汉字,并写入另一文件中,要求遇到句号就换行,并记录逗号的个数。

阅读更多
package common.gaoyang;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

/**
* 文件的读写
*
* @author liming
*
*/
public class CardZipFileOperating {
private static final Logger logger = LoggerFactory.getLogger(CardZipFileOperating.class);
// // 解压到的目标文件
// public static String directory = "E:\\demo\\";
// // 解压文件
// public static String stringg = "F:\\缴费网\\DL20111213003195.zip";

/**
* 解压,处理下载的zip工具包文件
*
* @param directory
*            要解压到的目录
* @param string
*            工具包文件
* @throws IOException
* @throws Exception
*             操作失败时抛出异常
*/
public static int unzipFile(String directory,String stringg) throws IOException{
ZipInputStream zis=null;
int f=0;
try {
zis = new ZipInputStream(new FileInputStream(stringg));
} catch (Exception e) {
f++;
System.out.println("解压ZIP文件失败!");
System.out.println("没有找到"+stringg+"目录下文件,检查下是不是文件的路径格式写的不对,如:D盘下的DL202111213003195.zip文件格式写成:D:\\"+"\\DL202111213003195.zip");
}
if(zis!=null){
ZipEntry ze = null;
try {
ze = zis.getNextEntry();
} catch (IOException e) {
// TODO Auto-generated catch block
f++;
e.printStackTrace();
}
File parent = new File(directory);
if (!parent.exists() && !parent.mkdirs()) {
System.out.println("创建给文件解压到那个 \"" + directory+ "\"目录 失败");
  System.out.println("检查下解压的目录是否格式写错:例如给文件解压到E盘下的 demo文件夹下,路径应该写成:E:\\"+"\\demo\\"+"\\");
  f++;
}else{
while (ze != null) {
String name = ze.getName();
File child = new File(parent, name);
FileOutputStream output = new FileOutputStream(child);
byte[] buffer = new byte[10240];
int bytesRead = 0;
while ((bytesRead = zis.read(buffer)) > 0) {
output.write(buffer, 0, bytesRead);
}
output.flush();
output.close();
ze = zis.getNextEntry();
}
}
zis.close();
}
return f;

}

// 函数GetTestXlsFileName功能:遍历fileAbsolutePath目录下的所有指定扩展名文件
// 并将文件名保存在Vector中
@SuppressWarnings("unchecked")
public static List getTestXlsFileName(String fileAbsolutePath) {
List list = new ArrayList();
File file = new File(fileAbsolutePath);
File[] subFile = file.listFiles();
if(subFile!=null){
for (int iFileLength = 0; iFileLength < subFile.length; iFileLength++) {
// 判断是否为文件夹
if (!subFile[iFileLength].isDirectory()) {
String tempName = subFile[iFileLength].getName();
// 判断是否为xls或xlsx结尾
if (tempName.trim().toLowerCase().endsWith(".xls")
|| tempName.trim().toLowerCase().endsWith(".xlsx")) {
// 去掉tXXXX.xls文件的首字母t
// String fileName = tempName.substring(1);
list.add(tempName);
}
}
}

}
return list;
}

public static int OperatingExcl(String objectPath,String directory)
throws Exception {
int flag=0;
String pathoperratingExcl = directory + objectPath;
// 定义一个文件类
InputStream is = null;
// 定义一个工作book
Workbook workBook = null;
is = new FileInputStream(pathoperratingExcl);
// 获取值
workBook = Workbook.getWorkbook(is);
// 获取哪一页sheet
Sheet sheet = workBook.getSheet(0);
@SuppressWarnings("unused")
Cell cell = null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://xx.xx.xx.xx:3306/realpay?useUnicode=true&characterEncoding=UTF-8";
String user = "xx";
String password = "xx";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, user, password);
Statement statement = conn.createStatement();
for (int j = 1; j < sheet.getRows(); j++) {
   if(!sheet.getCell(1, j).getContents().equals("")){
String order_no=null;
String sp_order_no=null;
String order_status=null;
String shengfen=null;
String yunyingshang=null;
String amount=null;
String order_date=null;
String liushui=null;
String phone=null;
String danjia=null;
String shifu=null;
String daozhang=null;
String tuikuan=null;
String create_date=null;
String update_date=null;
String this_status=null;
order_no=sheet.getCell(2, j).getContents();
sp_order_no=sheet.getCell(3, j).getContents();
String order_status1=sheet.getCell(15, j).getContents();
if(order_status1.equals("失败")){
order_status="0";
}else if(order_status1.equals("成功")){
order_status="1";
}else if(order_status1.equals(" ")){
order_status="2";
}else if(order_status1.equals("未付款")){
order_status="3";
}else if(order_status1.equals("部分退款")){
order_status="4";
}else{
order_status="2";
}
shengfen=sheet.getCell(6, j).getContents();
yunyingshang=sheet.getCell(7, j).getContents();
amount=sheet.getCell(9, j).getContents();
String ddd=sheet.getCell(1, j).getContents();
int index = ddd.indexOf(".");
String dddd=ddd.substring(0,index);
order_date=dddd;
liushui=sheet.getCell(4, j).getContents();
phone=sheet.getCell(10, j).getContents();
danjia=sheet.getCell(11, j).getContents();
shifu=sheet.getCell(12, j).getContents();
daozhang=sheet.getCell(13, j).getContents();
tuikuan=sheet.getCell(14, j).getContents();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
create_date=sdf.format(new Date());
update_date="0000-00-00 00:00:00";
this_status="1";
String sql = "INSERT INTO gaoyang_checking(order_no,sp_order_no,order_status,shengfen,yunyingshang,amount,order_date,liushui,phone,danjia,shifu,daozhang,tuikuan,create_date,update_date,this_status)" +
"VALUES" +
"('"+order_no+"','"+sp_order_no+"','"+order_status+"','"+shengfen+"','"+yunyingshang+"'," +
"'"+amount+"','"+order_date+"','"+liushui+"','"+phone+"','"+danjia+"'" +
",'"+shifu+"','"+daozhang+"','"+tuikuan+"','"+create_date+"','"+update_date+"','"+this_status+"')";
int  rs = statement.executeUpdate(sql);
if(rs>0){
//System.out.println("添加成功》》》》"+j);
flag++;
}else{
System.out.println("添加失败》》》》");
System.out.println("失败的sql"+sql);
}
   }
}
conn.close(); 
conn.close();
workBook.close();
return flag;
}
public static int DelOperatingExcl(String objectPath){
int id=0;
try {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://1xx.1xx8.1.2xx2:3306/realpay?useUnicode=true&characterEncoding=UTF-8";
String user = "xx";
String password = "xx";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, user, password);
Statement statement = conn.createStatement();
String sql = "DELETE  FROM gaoyang_checking  WHERE order_date LIKE '%"+objectPath+"%'";
System.out.println(sql);
id = statement.executeUpdate(sql);

conn.close(); 
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return id;
}
/**
* 读取excl文件并给存入到Map中去
*
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static void readExcl(String adatete,String directory,String stringg) throws Exception {
int j=0;
//解压到的文件   解压文件
int zipa=unzipFile(directory,stringg);
if(zipa<1){
//String y=adatete.split("-")[1].split("-")[0];
// String m=adatete.split("-")[0];
// String d=adatete.split("-")[2];
String f1=adatete.substring(0,4);
String f2=adatete.substring(4,6);
String f3=adatete.substring(6,8);
String zTime=f1+"-"+f2+"-"+f3;
List list = getTestXlsFileName(directory);
String pas="DL20111213003195_"+adatete+".xls";
for (int i = 0; i < list.size(); i++) {
//System.out.println(list.get(i));
if(pas.equals(list.get(i))){
int shan=DelOperatingExcl(zTime);
if(shan>0){
System.out.println("数据库有"+adatete+"记录,已经删除!");
}else{
System.out.println("数据库未有"+adatete+"记录!");
}

//路径   要添加的路径
int chenggong=OperatingExcl(pas,directory);
System.out.println("添加已经结束,添加了:"+chenggong+"条!");
}else{
j++;
}
if(j==list.size()){
System.out.println("没有找到"+adatete+"日期相对应的excel文件文件");
System.out.println("1、当天没有文件,2、检查下日期是否写错,例如2012年2月9号的必须写成:20120209");
}
}

}
}
public static void main(String[] args) {
try {
int dd=args.length;
if(dd==3){
System.out.println(dd);
String adatete = args[0];
String directory = args[1];
String stringg = args[2];
if(adatete.equals("") || adatete==null){
System.out.println("请按顺序输入3个参数,1 日期、2解压到的目录 、3需要解压的文件目录");
}else if(directory.equals("") || directory==null){
System.out.println("请按顺序输入3个参数,1 日期、2解压到的目录 、3需要解压的文件目录");
}else if(directory.equals("")  || directory==null){
System.out.println("请按顺序输入3个参数,1 日期、2解压到的目录 、3需要解压的文件目录");
}else{
readExcl(adatete,directory,stringg);
}
}else{
System.out.println("请按顺序输入3个参数,1 日期、2解压到的目录 、3需要解压的文件目录");
}

// String m=adatete.split("-")[0];
// String d=adatete.split("-")[2];

//readExcl("20120229","E:\\demo\\","F:\\缴费网\\DL20111213003195.zip");
} catch (Exception e) {
e.printStackTrace();
}
}
}
0
2
分享到:
评论

相关推荐

    java读取csv文件并将读取的数据写入新生成的csv文件

    在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的

    Java读取资源文件时内容过长与换行的处理

    这样在properties文件中可以实现换行的效果,同时在Java程序中读取时能够自动拼接成一个完整的字符串。 **示例:** ```properties name=Helloworld\ MyNameisferreousbox ``` **解析:** - 在properties文件中,...

    java编写,读取文件,把文件中的特殊符号去掉并换行

    java编写,读取文件,把文件中的空格去掉并换行,生成一个新文件

    Java写入大数据文件

    sqlitFileDate方法使用FileReader和BufferedReader来读取大数据文件,并使用LinkedList来存储文件流对象和BufferedWriter对象,然后将每个小文件的数据写入到对应的文件中。 在写入和切分文件操作完成后,程序使用...

    用java读取ini文件(支持中文)

    在Java中,由于标准库并未提供内置的INI文件读取支持,我们需要自定义一个解析器。`IniReader.java`很可能就是这样一个解析器,它可能实现了以下功能: 1. **读取文件**:首先,`IniReader`类会使用`BufferedReader...

    javaIO简单的写入读取文件

    接下来,我们需要创建一个读取器对象,用于从文件中读取数据。在这里,我们使用FileReader类创建一个读取器对象,例如: `FileReader fr = new FileReader(f);` 这里的fr是读取器对象,f是文件对象。 3. 创建缓冲...

    java读写csv文件,中文乱码问题

    下面我们将深入探讨如何在Java中正确地读取和写入CSV文件,以及解决中文乱码的问题。 1. **字符编码的理解**: - 在处理中文字符时,必须确保使用正确的字符编码,例如UTF-8。UTF-8是一种广泛支持的编码格式,可以...

    读取文件数据并解析成不同数据类型,然后写入磁盘文件。附加功能:对字符串以逗号分割成字段,字段内含逗号

    这里我们探讨的主题是如何从磁盘文件中读取数据,解析成不同的数据类型,并将结果写入新的磁盘文件,同时处理包含逗号的字段。这个过程涉及到`IO流操作`,特别是文件读写操作。 首先,`StringUtilSplit.java`可能是...

    详解Java无需解压直接读取Zip文件和文件内容

    Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面,我们将详细介绍如何使用Java...

    java读取数据库表中内容转存sql文件,然后解析执行此文件

    在Java编程中,读取数据库表中的内容并将其转换为SQL文件,然后解析并执行这个文件,是一项常见的数据处理任务。这项操作可能涉及到数据库连接、数据查询、文件操作以及SQL语句的构建与执行。以下将详细介绍这个过程...

    java中读取shp文件数据存入数据库

    shp文件:地理信息系统,也被称作GIS,它主要的扩展类型是SHAPEFILE (.SHP),一个包含了矢量地理空间数据的流行文件格式,描述了几何形态,点,线和多边形,每一个都有他们各自的属性。 shape文件由ESRI开发,一个...

    java算法,从txt文件中读取数据录入mysql

    在Java编程中,将数据从TXT文件读取并导入MySQL数据库是一项常见的任务,涉及到文件操作、字符串处理以及数据库交互等多个知识点。以下是对这些关键概念的详细解释: 1. **文件操作**:`FileOper.java`可能包含了对...

    文件流的读取与写入

    在Java编程中,文件流是处理输入/输出操作的核心工具,尤其在读取和写入文件时。"文件流的读取与写入"这个主题主要涵盖了如何使用Java中的BufferedReader和BufferedWriter类来高效地处理文件内容。这两个类属于Java....

    java 按顺序读取文件

    在Java编程语言中,按顺序读取文件是基础且重要的操作。这通常涉及到使用I/O流(Input/Output Stream)来处理文件数据。本篇文章将深入探讨如何在Java中实现按顺序读取文件,以及涉及的相关知识点。 首先,Java提供...

    java读取*.mdb文件数据

    在提供的"示例代码.txt"文件中,可能包含了一个使用UCanAccess进行分页读取的Java代码示例。这个示例可能包括了建立连接、设置分页参数、执行查询、处理结果集以及关闭资源的过程。打开这个文件,按照示例代码一步步...

    CSV文件读取与写入

    通常,这样的代码会提供读取CSV文件到内存中的数据结构(如二维数组或结构体数组),以及从内存写入数据到CSV文件的方法。通过学习和实践,你可以掌握在Wince系统中处理CSV文件的技巧,这对于进行数据处理和分析非常...

    java读取mpp文件

    `mpxj`是一个开源的Java库,专门用于读取和写入Microsoft Project文件,包括MPP格式。这个库提供了丰富的API,使得开发者可以在Java应用中方便地操作这些项目管理文件。 首先,让我们详细了解一下如何在Java中使用`...

    JAVA读取文件——以行为单位读取

    在Java编程语言中,读取文件是常见的任务之一,尤其对于处理文本文件,如TXT文件,以行为单位读取文件内容是一种效率较高且易于管理数据的方式。本篇将深入探讨如何使用Java进行逐行读取TXT文件,并提供相关示例代码...

    java 实现DBF文件读取与创建

    在Java中处理DBF文件,我们可以借助特定的库,如JDBF,它提供了读取和写入DBF文件的功能。本篇文章将深入探讨如何使用Java实现DBF文件的读取与创建。 1. **DBF文件格式介绍** DBF文件格式源于dBase,是早期个人...

Global site tag (gtag.js) - Google Analytics