ループを使用せずに 2 つのテキスト (ODT) ファイルを比較する方法はありますか?
要点は、 内でservlet
JavaScript からファイルを受け取り、それをサーバーに保存されている別のファイルと比較したいということです。これは私がやっていることですが、機能していません。それらは等しいとは言えませんが、同じファイルであるため、内容はまったく同じです。
base64 でファイルのコンテンツを受け取り、それをバイト [] ( var) に解析してからcontent
、保存されたファイル ( savedFile
var) を開き、それをバイト [] ( var) に解析しますsavedFileByte
。次に、を使用して両方の byte[] 変数を比較しようとしArrays.equals()
ます。先ほど言ったように、常に false を返しますが、内容は同じであると確信しています。それで、私は何を間違っていますか?または、これを処理する別の方法はありますか?
これはおそらく多くのファイルを比較するため、ループを使用したくないため、ループを使用するとパフォーマンスが低下します。とにかく、それが唯一の方法なら、言ってください!ありがとう!
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String fileName = String.valueOf(request.getParameter("fileName"));
byte[] content = Base64.decodeBase64(IOUtils.toByteArray(request.getInputStream()));
FileInputStream savedFile = new FileInputStream("path/"+fileName);
byte[] savedFileByte = IOUtils.toByteArray(savedFile);
if (Arrays.equals(content, savedFileByte))
System.out.println("MATCH!");
else
System.out.println("DO NOT MATCH!");
savedFile.close();
}