diff --git a/src/Uri.php b/src/Uri.php
index <HASH>..<HASH> 100644
--- a/src/Uri.php
+++ b/src/Uri.php
@@ -471,7 +471,7 @@ class Uri implements UriInterface
             $uri .= $scheme . ':';
         }
 
-        if ($authority != '') {
+        if ($authority != '' || $scheme == 'file') {
             $uri .= '//' . $authority;
         }
 
diff --git a/tests/UriTest.php b/tests/UriTest.php
index <HASH>..<HASH> 100644
--- a/tests/UriTest.php
+++ b/tests/UriTest.php
@@ -472,6 +472,15 @@ class UriTest extends \PHPUnit_Framework_TestCase
         $this->assertSame('https://localhost', (string) $uri);
     }
 
+    public function testFileSchemeWithEmptyHost()
+    {
+        $uri = (new Uri())->withScheme('file');
+
+        $this->assertSame('', $uri->getHost());
+        $this->assertSame('', $uri->getAuthority());
+        $this->assertSame('file://', (string) $uri);
+    }
+
     public function uriComponentsEncodingProvider()
     {
         $unreserved = 'a-zA-Z0-9.-_~!$&\'()*+,;=:@';
Fixes support for reconsturcting localhost file scheme