一、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-hk/n/201040.html
微信掃一掃
支付寶掃一掃