我收到了一个错误 io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence
解决方案是以UTF-8读写文件.
我的代码是:
InputStream input = null;
OutputStream output = null;
OutputStreamWriter bufferedWriter = new OutputStreamWriter( output, "UTF8");
input = new URL(url).openStream();
output = new FileOutputStream("DirectionResponse.xml");
byte[] buffer = new byte[1024];
for (int length = 0; (length = input.read(buffer)) > 0;) {
output.write(buffer, 0, length);
}
BufferedReader br = new BufferedReader(new FileReader("DirectionResponse.xml" ));
FileWriter fstream = new FileWriter("ppre_DirectionResponse.xml");
BufferedWriter out = new BufferedWriter(fstream);
Run Code Online (Sandbox Code Playgroud)
我正在读一个url并将其写入文件DirectionResponse.xml.然后读取DirectionResponse.xml并将其写为*ppre_DirecionResponse.xml*进行处理.
如何更改此选项以便以UTF-8完成读写?
尝试从BST中删除节点.执行后,节点仍然存在于树中.我该如何正确实施?
public void deleteNode(TreeNode removeNode, TreeNode root)
{
if(removeNode.Left==null && removeNode.Right==null) //0 children
{
removeNode = null;
}
else if(removeNode.Left==null)//1 children
{
removeNode = removeNode.Right;
}
else if(removeNode.Right==null)//1 children
{
removeNode = removeNode.Left;
}
else // 2 children
{
int successorValue = this.getSuccessor(removeNode, root);
TreeNode successor = this.search(successorValue,root);
removeNode.data = successor.data;
deleteNode(successor, root);
}
}
Run Code Online (Sandbox Code Playgroud)