一、StringReader類簡介
StringReader類是Java IO的一部分,用於從字元串中讀取字元流。該類提供了幾種用於讀取字元流的方法。使用StringReader類可以方便地從字元串中讀取字元而無需進行文件操作。
二、StringReader類的創建和基本方法
要使用StringReader類,需要先創建一個StringReader對象。StringReader對象可以使用String類型的參數進行初始化,該參數會轉化為一個字元流。
String s = "Hello, World!"; StringReader reader = new StringReader(s);
使用StringReader讀取字元時,常用的方法有read()和read(char[] cbuf, int off, int len)方法。其中,read()方法每次讀取一個字元,返回字元的ASCII碼值;read(char[] cbuf, int off, int len)方法讀取len個字元,並將其存儲在cbuf數組中,從off位置開始存儲。如果讀取到流的末尾,則返回-1。
String s = "Hello, World!"; StringReader reader = new StringReader(s); int c; while ((c = reader.read()) != -1) { // 列印讀取到的ASCII碼值 System.out.println(c); }
三、使用StringReader讀取HTML標籤
在讀取HTML標籤時,需要考慮到標籤的特殊性。可以使用read(String str, int off, int len)方法,該方法將讀取len個字元並存儲在str字元串中,從off位置開始存儲。如果讀取到指定的字元(如”<")或者流的末尾,則停止讀取。
String s = "<h1>Hello, World!</h1>"; StringReader reader = new StringReader(s); char[] cbuf = new char[100]; int readCount = reader.read(cbuf, 0, 100); String tag = ""; for (int i = 0; i < readCount && (cbuf[i] != ' ' || cbuf[i] != '>'); i++) { tag += cbuf[i]; } System.out.println(tag);
四、使用StringReader讀取XML文件
使用StringReader可以方便地讀取XML文件。Java提供了一種將XML文件解析成Document對象的方法:使用DOM解析器。有了Document對象之後,就可以方便地獲取節點和屬性信息。下面的代碼示例展示了使用DOM解析XML文件並讀取其中的節點信息。
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>Tom18Jerry22"; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); InputSource is = new InputSource(new StringReader(xml)); Document document = builder.parse(is); NodeList personNodes = document.getElementsByTagName("person"); for (int i = 0; i < personNodes.getLength(); i++) { Element personElement = (Element) personNodes.item(i); String id = personElement.getAttribute("id"); String name = personElement.getElementsByTagName("name").item(0).getTextContent(); String age = personElement.getElementsByTagName("age").item(0).getTextContent(); System.out.println("id:" + id + ", name:" + name + ", age:" + age); }
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/201040.html