with Ada.Directories;
with Ada.Direct_IO;
with Ada.Text_IO;

procedure Extra_IO.Read_File (Name : String) is

   package Dirs renames Ada.Directories;
   package Text_IO renames Ada.Text_IO;

   -- Get the size of the file for a new string.
   Size : Natural := Natural (Dirs.Size (Name));
   subtype File_String is String (1 .. Size);

   -- Instantiate Direct_IO for our file type.
   package FIO is new Ada.Direct_IO (File_String);

   File     : FIO.File_Type;
   Contents : File_String;

begin
   FIO.Open (File, FIO.In_File, Name);
   FIO.Read (File, Contents);
   FIO.Close (File);

   Text_IO.Put (Contents);
end Extra_IO.Read_File;
