java如何解析grib1文件的簡單介紹

本文目錄一覽:

java源文件解析

建一個Student實體類封裝數據

public static ListStudent readXml() {

ListStudent list = new ArrayListStudent();

//定義一個a href=”;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3uhnvryDYrjIBPyDYn1Rv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1RznjcYn1TLnH04rjcYnjTvPf” target=”_blank” class=”baidu-highlight”dom解析/a器工廠實例

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

try {

//由工廠實例得到一個a href=”;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3uhnvryDYrjIBPyDYn1Rv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1RznjcYn1TLnH04rjcYnjTvPf” target=”_blank” class=”baidu-highlight”dom解析/a器

DocumentBuilder dom = factory.newDocumentBuilder();

//找到a href=”;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3uhnvryDYrjIBPyDYn1Rv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1RznjcYn1TLnH04rjcYnjTvPf” target=”_blank” class=”baidu-highlight”xml文檔/a

File file=new File(“src/com/jereh/ch05/Students.xml”);

Document doc=dom.parse(file);

//

Element root = doc.getDocumentElement();

NodeList stuNodeList = root.getChildNodes();

for (int i = 0; i stuNodeList.getLength(); i++) {

Node stu = stuNodeList.item(i);

Student student = new Student();

if (stu != null stu.getNodeType() == Node.ELEMENT_NODE) {

// System.out.println(stu);

Element stuElement = (Element) stu;

student.setNo(stuElement.getAttribute(“id”));

// stu.getAttributes().getNamedItem(null);

// Element stu=(Element)stuNodeList

NodeList info = stuElement.getChildNodes();

for (int j = 0; j info.getLength(); j++) {

info.item(j).getNodeName();

Node n = info.item(j);

if (“name”.equals(n.getNodeName())) {

// n.getFirstChild().getNodeValue();

student.setName(n.getLastChild().getNodeValue());

} else if (“age”.equals(n.getNodeName())) {

student.setAge(Integer.parseInt(n.getFirstChild()

.getNodeValue()));

}

list.add(student);

}

}

}

} catch (ParserConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SAXException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// System.out.println(root.getNodeValue());

return list;

}

Java怎麼解析用C寫入的.bin類型二進位文件

Java怎麼解析用C寫入的.bin類型二進位文件

\\假設文件的地址為a.txt

FileInputStream in=new FileInputStream(new File(“a.txt”));

byte[] buffer=new byte[4096];

int offset=0;

while((offset=in.read(buffer)-1){

//這已經把文件讀入到buffer中了,範圍為0到offset,你可以做任何處理了

}

in.close();

java解析xml文件

SaxReader reader = new SaxReader();

Document doc = reader.read(new File(“class.xml”));

Element element = doc.getRootElement();//獲取根元素

迭代器:取根元素下的子元素名稱

IteratorElement iter = element.elementIterator();

while(iter.hashNext){

Element el = (Element)iter.next();

el.getName();//獲取元素名稱

el.getText();//獲取元素值

}

//獲取屬性名稱、值

IteratorAttribute iter1 = element.attributeIterator();

while(iter1.hashNext()){

Attribute el = (Attribute)iter1.next();

el.getName();el.getValue();//獲取屬性名稱和值

}

如果取所有,則用遞歸取:

public void getInfo(Element root){

IteratorElement iter = root.getElementIterator();

while(iter.hashNext()){

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

getInfo(element);//自己調用自己 遞歸方法

}

}

如何用JAVA解析txt文件

java讀取txt文件內容。可以作如下理解:

首先獲得一個文件句柄。File file = new File(); file即為文件句柄。兩人之間連通電話網路了。接下來可以開始打電話了。

通過這條線路讀取甲方的信息:new FileInputStream(file) 目前這個信息已經讀進來內存當中了。接下來需要解讀成乙方可以理解的東西

既然你使用了FileInputStream()。那麼對應的需要使用InputStreamReader()這個方法進行解讀剛才裝進來內存當中的數據

解讀完成後要輸出呀。那當然要轉換成IO可以識別的數據呀。那就需要調用位元組碼讀取的方法BufferedReader()。同時使用bufferedReader()的readline()方法讀取txt文件中的每一行數據哈。

package com.campu;

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.io.Reader;

public class H20121012 {

/**

* 功能:Java讀取txt文件的內容

* 步驟:1:先獲得文件句柄

* 2:獲得文件句柄當做是輸入一個位元組碼流,需要對這個輸入流進行讀取

* 3:讀取到輸入流後,需要讀取生成位元組流

* 4:一行一行的輸出。readline()。

* 備註:需要考慮的是異常情況

* @param filePath

*/

public static void readTxtFile(String filePath){

try {

String encoding=”GBK”;

File file=new File(filePath);

if(file.isFile() file.exists()){ //判斷文件是否存在

InputStreamReader read = new InputStreamReader(

new FileInputStream(file),encoding);//考慮到編碼格式

BufferedReader bufferedReader = new BufferedReader(read);

String lineTxt = null;

while((lineTxt = bufferedReader.readLine()) != null){

System.out.println(lineTxt);

}

read.close();

}else{

System.out.println(“找不到指定的文件”);

}

} catch (Exception e) {

System.out.println(“讀取文件內容出錯”);

e.printStackTrace();

}

}

public static void main(String argv[]){

String filePath = “L:\\Apache\\htdocs\\res\\20121012.txt”;

// “res/”;

readTxtFile(filePath);

}

}

java解析xml的幾種方式哪種最好?

(1)DOM解析

DOM是html和xml的應用程序介面(API),以層次結構(類似於樹型)來組織節點和信息片段,映射XML文檔的結構,允許獲取

和操作文檔的任意部分,是W3C的官方標準

【優點】

①允許應用程序對數據和結構做出更改。

②訪問是雙向的,可以在任何時候在樹中上下導航,獲取和操作任意部分的數據。

【缺點】

①通常需要載入整個XML文檔來構造層次結構,消耗資源大。

【解析詳解】

①構建Document對象:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = bdf.newDocumentBuilder();

InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(xml文件);

Document doc = bd.parse(is);

②遍歷DOM對象

Document: XML文檔對象,由解析器獲取

NodeList: 節點數組

Node: 節點(包括element、#text)

Element: 元素,可用於獲取屬性參數

(2)SAX(Simple API for XML)解析

流模型中的”推”模型分析方式。通過事件驅動,每發現一個節點就引發一個事件,事件推給事件處理器,通過回調方法

完成解析工作,解析XML文檔的邏輯需要應用程序完成

【優勢】

①不需要等待所有數據都被處理,分析就能立即開始。

②只在讀取數據時檢查數據,不需要保存在內存中。

③可以在某個條件得到滿足時停止解析,不必解析整個文檔。

④效率和性能較高,能解析大於系統內存的文檔。

【缺點】

①需要應用程序自己負責TAG的處理邏輯(例如維護父/子關係等),文檔越複雜程序就越複雜。

②單嚮導航,無法定位文檔層次,很難同時訪問同一文檔的不同部分數據,不支持XPath。

【原理】

簡單的說就是對文檔進行順序掃描,當掃描到文檔(document)開始與結束、元素(element)開始與結束時通知事件

處理函數(回調函數),進行相應處理,直到文檔結束

【事件處理器類型】

①訪問XML DTD:DTDHandler

②低級訪問解析錯誤:ErrorHandler

③訪問文檔內容:ContextHandler

【DefaultHandler類】

SAX事件處理程序的默認基類,實現了DTDHandler、ErrorHandler、ContextHandler和EntityResolver介面,通常

做法是,繼承該基類,重寫需要的方法,如startDocument()

【創建SAX解析器】

SAXParserFactory saxf = SAXParserFactory.newInstance();

SAXParser sax = saxf.newSAXParser();

註:關於遍歷

①深度優先遍歷(Depthi-First Traserval)

②廣度優先遍歷(Width-First Traserval)

(3)JDOM(Java-based Document Object Model)

Java特定的文檔對象模型。自身不包含解析器,使用SAX

【優點】

①使用具體類而不是介面,簡化了DOM的API。

②大量使用了Java集合類,方便了Java開發人員。

【缺點】

①沒有較好的靈活性。

②性能較差。

(4)DOM4J(Document Object Model for Java)

簡單易用,採用Java集合框架,並完全支持DOM、SAX和JAXP

【優點】

①大量使用了Java集合類,方便Java開發人員,同時提供一些提高性能的替代方法。

②支持XPath。

③有很好的性能。

【缺點】

①大量使用了介面,API較為複雜。

(5)StAX(Streaming API for XML)

流模型中的拉模型分析方式。提供基於指針和基於迭代器兩種方式的支持,JDK1.6新特性

【和推式解析相比的優點】

①在拉式解析中,事件是由解析應用產生的,因此拉式解析中向客戶端提供的是解析規則,而不是解析器。

②同推式解析相比,拉式解析的代碼更簡單,而且不用那麼多庫。

③拉式解析客戶端能夠一次讀取多個XML文件。

④拉式解析允許你過濾XML文件和跳過解析事件。

【簡介】

StAX API的實現是使用了Java Web服務開發(JWSDP)1.6,並結合了Sun Java流式XML分析器(SJSXP)-它位於

javax.xml.stream包中。XMLStreamReader介面用於分析一個XML文檔,而XMLStreamWriter介面用於生成一個

XML文檔。XMLEventReader負責使用一個對象事件迭代子分析XML事件-這與XMLStreamReader所使用的游標機制

形成對照。

如何用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();

    }

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/242919.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:53
下一篇 2024-12-12 12:53

相關推薦

發表回復

登錄後才能評論