Problem with your rules is that it will cause infinite looping since both rules are rewriting like this: A->B
and B->A
.
You can use this rule to avoid looping:
RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} \s/+file\.html\s [NC]
RewriteRule ^ ~ [R=302,L,NE]
RewriteRule ^~$ file.html [L,B]
THE_REQUEST
variable represents original request received by Apache from your browser and it doesn't get overwritten after execution of some rewrite rules.