java解析文件,java解析文件时出错

本文目录一览:

在java在如何解析XML文件

在java环境下读取xml文件的方法主要有4种:DOM、SAX、JDOM、JAXB

1. DOM(Document Object Model)

此方法主要由W3C提供,它将xml文件全部读入内存中,然后将各个元素组成一棵数据树,以便快速的访问各个节点 。 因此非常消耗系统性能 ,对比较大的文档不适宜采用DOM方法来解析。 DOM API 直接沿袭了 XML 规范。每个结点都可以扩展的基于 Node 的接口,就多态性的观点来讲,它是优秀的,但是在 Java 语言中的应用不方便,并且可读性不强。

实例:

import javax.xml.parsers.*;

//XML解析器接口

import org.w3c.dom.*;

//XML的DOM实现

import org.apache.crimson.tree.XmlDocument;

//写XML文件要用到

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

//允许名字空间

factory.setNamespaceAware(true);

//允许验证

factory.setValidating(true);

//获得DocumentBuilder的一个实例

try {

DocumentBuilder builder = factory.newDocumentBuilder();

} catch (ParserConfigurationException pce) {

System.err.println(pce);

// 出异常时输出异常信息,然后退出,下同

System.exit(1);

}

//解析文档,并获得一个Document实例。

try {

Document doc = builder.parse(fileURI);

} catch (DOMException dom) {

System.err.println(dom.getMessage());

System.exit(1);

} catch (IOException ioe) {

System.err.println(ioe);

System.exit(1);

}

//获得根节点StuInfo

Element elmtStuInfo = doc.getDocumentElement();

//得到所有student节点

NodeList nlStudent = elmtStuInfo.getElementsByTagNameNS(

strNamespace, “student”);

for (……){

//当前student节点元素

Element elmtStudent = (Element)nlStudent.item(i);

NodeList nlCurrent = elmtStudent.getElementsByTagNameNS(

strNamespace, “name”);

}

java解析json格式文件,再保存在数据库怎么做?

java解析json格式文件,再保存在数据库的方法:

1:定义一个实体类

2:用json lib将json字符串转为Java对象

3:用jdbc或hibernate将java对象存入数据库

直接读写文件,再把读出来的文件内容格式化成json,再用JDBC、Mybatis或者其他框架将json数据存入数据库。

假设实体类是这样的:

public class ElectSet {

public String xueqi;

public String xuenian;

public String startTime;

public String endTime;

public int menshu;

public String isReadDB;

//{“xueqi”:,”xuenian”:,”startTime”:,”endTime”:,”renshu”:,”isReadDB”:}

public String getXueqi() {

   return xueqi;

}

public void setXueqi(String xueqi) {

   this.xueqi = xueqi;

}

public String getXuenian() {

   return xuenian;

}

public void setXuenian(String xuenian) {

   this.xuenian = xuenian;

}

public String getStartTime() {

   return startTime;

}

public void setStartTime(String startTime) {

   this.startTime = startTime;

}

public String getEndTime() {

   return endTime;

}

public void setEndTime(String endTime) {

   this.endTime = endTime;

}

public int getMenshu() {

   return menshu;

}

public void setMenshu(int menshu) {

   this.menshu = menshu;

}

public String getIsReadDB() {

   return isReadDB;

}

public void setIsReadDB(String isReadDB) {

   this.isReadDB = isReadDB;

}

 

}

有一个json格式的文件,存的信息如下:

Sets.json:

{“xuenian”:”2007-2008″,”xueqi”:”1″,”startTime”:”2009-07-19 08:30″,”endTime”:”2009-07-22 18:00″,”menshu”:”10″,”isReadDB”:”Y”}

具体操作:

/*

* 取出文件内容,填充对象

*/

public ElectSet findElectSet(String path){

   ElectSet electset=new ElectSet();

   String sets=ReadFile(path);//获得json文件的内容

   JSONObject jo=JSONObject.fromObject(sets);//格式化成json对象

   //System.out.println(“————” jo);

   //String name = jo.getString(“xuenian”);

   //System.out.println(name);

   electset.setXueqi(jo.getString(“xueqi”));

   electset.setXuenian(jo.getString(“xuenian”));

   electset.setStartTime(jo.getString(“startTime”));

   electset.setEndTime(jo.getString(“endTime”));

   electset.setMenshu(jo.getInt(“menshu”));

   electset.setIsReadDB(jo.getString(“isReadDB”));

   return electset;

}

//设置属性,并保存

public boolean setElect(String path,String sets){

   try {

    writeFile(path,sets);

    return true;

   } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    return false;

   }

}

//读文件,返回字符串

public String ReadFile(String path){

    File file = new File(path);

    BufferedReader reader = null;

    String laststr = “”;

    try {

     //System.out.println(“以行为单位读取文件内容,一次读一整行:”);

     reader = new BufferedReader(new FileReader(file));

     String tempString = null;

     int line = 1;

     //一次读入一行,直到读入null为文件结束

     while ((tempString = reader.readLine()) != null) {

      //显示行号

      System.out.println(“line ” line “: ” tempString);

      laststr = laststr tempString;

      line ;

     }

     reader.close();

    } catch (IOException e) {

     e.printStackTrace();

    } finally {

     if (reader != null) {

      try {

       reader.close();

      } catch (IOException e1) {

      }

     }

    }

    return laststr;

}

将获取到的字符串,入库即可。

如何用java解析CSV文件

思想:先获取csv文件的路径,通过BufferedReader类去读该路径中的文件,使用readLine方法进行逐行读取。

注意:使用readLine方法后会自动转到下一行。因此在判断是否为空后得先将读取到的内容赋值给一变量,在循环中使用该变量即可。

public static void main(String[] args)

{

    File csv = new File(“C:\\Users\\chenxumin\\Desktop\\Result.csv”);  // CSV文件路径

    BufferedReader br = null;

    try

    {

        br = new BufferedReader(new FileReader(csv));

    } catch (FileNotFoundException e)

    {

        e.printStackTrace();

    }

    String line = “”;

    String everyLine = “”;

    try {

            ListString allString = new ArrayList();

            while ((line = br.readLine()) != null)  //读取到的内容给line变量

            {

                everyLine = line;

                System.out.println(everyLine);

                allString.add(everyLine);

            }

            System.out.println(“csv表格中所有行数:”+allString.size());

    } catch (IOException e)

    {

        e.printStackTrace();

    }

}

java 怎样解析 excel生成的xml文件

java解析excel生成的xml文件的方法是使用dom4j实现的。

dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。

1、excel生成的xml样例文件:

?xml version=”1.0″?

?mso-application progid=”Excel.Sheet”?

Workbook xmlns=”urn:schemas-microsoft-com:office:spreadsheet”

xmlns:o=”urn:schemas-microsoft-com:office:office”

xmlns:x=”urn:schemas-microsoft-com:office:excel”

xmlns:ss=”urn:schemas-microsoft-com:office:spreadsheet”

xmlns:html=””

DocumentProperties xmlns=”urn:schemas-microsoft-com:office:office”

Created2006-09-16T00:00:00Z/Created

LastSaved2016-07-25T03:26:50Z/LastSaved

Version14.00/Version

/DocumentProperties

OfficeDocumentSettings xmlns=”urn:schemas-microsoft-com:office:office”

AllowPNG/

RemovePersonalInformation/

/OfficeDocumentSettings

ExcelWorkbook xmlns=”urn:schemas-microsoft-com:office:excel”

WindowHeight7956/WindowHeight

WindowWidth14808/WindowWidth

WindowTopX240/WindowTopX

WindowTopY168/WindowTopY

ActiveSheet2/ActiveSheet

ProtectStructureFalse/ProtectStructure

ProtectWindowsFalse/ProtectWindows

/ExcelWorkbook

Styles

Style ss:ID=”Default” ss:Name=”Normal”

Alignment ss:Vertical=”Bottom”/

Borders/

Font ss:FontName=”宋体” x:CharSet=”134″ ss:Size=”11″ ss:Color=”#000000″/

Interior/

NumberFormat/

Protection/

/Style

Style ss:ID=”s16″ ss:Name=”好”

Font ss:FontName=”宋体” x:CharSet=”134″ ss:Size=”11″ ss:Color=”#006100″/

Interior ss:Color=”#C6EFCE” ss:Pattern=”Solid”/

/Style

Style ss:ID=”s17″

Alignment ss:Horizontal=”Left” ss:Vertical=”Center” ss:Indent=”1″

ss:WrapText=”1″/

Font ss:FontName=”宋体” x:CharSet=”134″ ss:Size=”8″ ss:Color=”#686868″/

NumberFormat ss:Format=”@”/

/Style

Style ss:ID=”s18″ ss:Parent=”s16″

Alignment ss:Vertical=”Bottom”/

/Style

Style ss:ID=”s19″

NumberFormat ss:Format=”yyyy/m/d\ h:mm:ss”/

/Style

/Styles

Worksheet ss:Name=”Sheet1″

Table ss:ExpandedColumnCount=”6″ ss:ExpandedRowCount=”3″ x:FullColumns=”1″

x:FullRows=”1″ ss:DefaultRowHeight=”14.4″

Row

CellData ss:Type=”String”工号/Data/Cell

CellData ss:Type=”String”姓名 /Data/Cell

Cell ss:Index=”5″Data ss:Type=”String”工号/Data/Cell

CellData ss:Type=”String”姓名/Data/Cell

/Row

Row

CellData ss:Type=”Number”111/Data/Cell

CellData ss:Type=”String”张三/Data/Cell

Cell ss:Index=”5″Data ss:Type=”Number”111/Data/Cell

Cell ss:Formula=”=VLOOKUP(R2C5:R3C5,RC[-5]:R[1]C[-4],2)”Data

ss:Type=”String”张三/Data/Cell

/Row

Row

CellData ss:Type=”Number”112/Data/Cell

CellData ss:Type=”String”李四/Data/Cell

Cell ss:Index=”5″Data ss:Type=”Number”112/Data/Cell

Cell ss:Formula=”=VLOOKUP(R2C5:R3C5,RC[-5]:R[1]C[-4],2)”Data

ss:Type=”String”李四/Data/Cell

/Row

/Table

WorksheetOptions xmlns=”urn:schemas-microsoft-com:office:excel”

PageSetup

Header x:Margin=”0.3″/

Footer x:Margin=”0.3″/

PageMargins x:Bottom=”0.75″ x:Left=”0.7″ x:Right=”0.7″ x:Top=”0.75″/

/PageSetup

Panes

Pane

Number3/Number

ActiveRow7/ActiveRow

ActiveCol5/ActiveCol

/Pane

/Panes

ProtectObjectsFalse/ProtectObjects

ProtectScenariosFalse/ProtectScenarios

/WorksheetOptions

/Worksheet

/Workbook

2、java解析代码:

import java.io.File;

import java.util.Iterator;

import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

public class Demo {

public static void main(String[] args) throws Exception {

SAXReader reader = new SAXReader();

Document document = reader.read(new File(“person.xml”));

Element root = document.getRootElement();

Iterator it = root.elementIterator();

while (it.hasNext()) {

Element element = (Element) it.next();

//未知属性名称情况下

/*Iterator attrIt = element.attributeIterator();

while (attrIt.hasNext()) {

Attribute a = (Attribute) attrIt.next();

System.out.println(a.getValue());

}*/

//已知属性名称情况下

System.out.println(“id: ” + element.attributeValue(“id”));

//未知元素名情况下

/*Iterator eleIt = element.elementIterator();

while (eleIt.hasNext()) {

Element e = (Element) eleIt.next();

System.out.println(e.getName() + “: ” + e.getText());

}

System.out.println();*/

//已知元素名情况下

System.out.println(“title: ” + element.elementText(“title”));

System.out.println(“author: ” + element.elementText(“author”));

System.out.println();

}

}

}

Java里面怎么解析xml文件的内容

Java解析xml代码,我是用dom4j读取的,

import java.io.File;

import java.util.Iterator;

import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

public class Dom4JReader {

public Dom4JReader() {

}

/**

*

* @Function 获取xml文件里符合要求的数据

*/

public void getDom() {

SAXReader sr = new SAXReader();

try {

//获取applicationContext.xml文件的对象

Document doc = sr.read(new File(“applicationContext.xml”));

//获得跟节点

Element root = doc.getRootElement();

//// 枚举所有子节点

for (Iterator i = root.elementIterator(“bean”); i.hasNext();) {

//获取bean节点

Element bean = (Element) i.next();

// 枚举名称为bean的节点

for (Iterator j = bean.attributeIterator(); j.hasNext();) {

//获取bean节点的所有属性

Attribute attr = (Attribute) j.next();

//判断属性的值如果为fileUploadBo

if (attr.getText().equals(“fileUploadBo”)) {

//打印出这个bean节点的所有信息

System.out.println(bean.asXML());

}

}

}

} catch (DocumentException e) {

e.printStackTrace();

}

}

}

这段代码要执行的话,要导入dom4j的包,还有

//获取applicationContext.xml文件的对象

Document doc = sr.read(new File(“applicationContext.xml”));

在src下有这个xml文件。

原创文章,作者:TAIF,如若转载,请注明出处:https://www.506064.com/n/133804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
TAIFTAIF
上一篇 2024-10-04 00:01
下一篇 2024-10-04 00:01

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常问题的解决

    本文旨在解决vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常的问题,提供完整的代码示例供参考。 一、分析问题 首先,需了解vue中下载文件的情况。一般情况下,我们…

    编程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件并生成完整的图像

    OBJ格式是一种用于表示3D对象的标准格式,通常由一组顶点、面和纹理映射坐标组成。在本文中,我们将讨论如何将多个OBJ文件拼接在一起,生成一个完整的3D模型。 一、读取OBJ文件 …

    编程 2025-04-29
  • 为什么用cmd运行Java时需要在文件内打开cmd为中心

    在Java开发中,我们经常会使用cmd在命令行窗口运行程序。然而,有时候我们会发现,在运行Java程序时,需要在文件内打开cmd为中心,这让很多开发者感到疑惑,那么,为什么会出现这…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29

发表回复

登录后才能评论