Issue #20501: fileinput module no longer reads whole file into memory when using
fileinput.hook_encoded.
diff --git a/Lib/fileinput.py b/Lib/fileinput.py
index 04e97bd..21c2d1f 100644
--- a/Lib/fileinput.py
+++ b/Lib/fileinput.py
@@ -387,9 +387,10 @@
 
 
 def hook_encoded(encoding):
-    import codecs
+    import io
     def openhook(filename, mode):
-        return codecs.open(filename, mode, encoding)
+        mode = mode.replace('U', '').replace('b', '') or 'r'
+        return io.open(filename, mode, encoding=encoding, newline='')
     return openhook