使用DocumentBuilder解析InputStreamReader

Jac*_*mes 2 java groovy document file utf-8

我的Java经验很少.我正在尝试强制将文档读取为UTF-8,但是试图将InputStream读取器挂钩到文档构建器.

这是我到目前为止所拥有的:

import javax.xml.xpath.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;


if( pathToFile == null ) throw new Exception("You must supply a pathToFile parameter");

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

InputStreamReader in = new InputStreamReader( new FileInputStream( pathToFile ), "utf-8" );

BufferedReader reader = new BufferedReader ( new InputStreamReader ( in ) );

Element records = builder.parse(reader).getDocumentElement();
Run Code Online (Sandbox Code Playgroud)

如果有人能为我提供一些指示,请感激不尽

Ted*_*opp 8

不要缠绕InputStreamReader你的InputStreamReader.(编辑此外,由于没有方法从Reader解析XML,您需要将读取器包装在InputSource中):

if( pathToFile == null )
    throw new Exception("You must supply a pathToFile parameter");

DocumentBuilder builder = DocumentBuilderFactory.newInstance()
    .newDocumentBuilder();

InputStreamReader in = new InputStreamReader(
    new FileInputStream( pathToFile ), "utf-8" );

BufferedReader reader = new BufferedReader ( in ); // CHANGED

InputSource input = new InputSource(reader);

Element records = builder.parse(input).getDocumentElement();
Run Code Online (Sandbox Code Playgroud)