1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
/*******************************************************************************

        copyright:      Copyright (c) 2007 Kris Bell. All rights reserved

        license:        BSD style: $(LICENSE)

        version:        Initial release: Nov 2007

        author:         Kris

*******************************************************************************/

module tango.io.stream.TextFile;

public  import tango.io.device.File;

private import tango.io.stream.Text;

/*******************************************************************************

        Composes a file with line-oriented input. The input is buffered.

*******************************************************************************/

class TextFileInput : TextInput
{
        /***********************************************************************

                Compose a FileStream.

        ***********************************************************************/

        this (const(char)[] path, File.Style style = File.ReadExisting)
        {
                this (new File (path, style));
        }

        /***********************************************************************

                Wrap a FileConduit instance.

        ***********************************************************************/

        this (File file)
        {
                super (file);
        }
}


/*******************************************************************************

        Composes a file with formatted text output. Output is buffered.

*******************************************************************************/

class TextFileOutput : TextOutput
{
        /***********************************************************************

                Compose a FileStream.

        ***********************************************************************/

        this (const(char)[] path, File.Style style = File.WriteCreate)
        {
                this (new File (path, style));
        }

        /***********************************************************************

                Wrap a File instance.

        ***********************************************************************/

        this (File file)
        {
                super (file);
        }
 }


/*******************************************************************************

*******************************************************************************/

debug (TextFile)
{
        import tango.io.Console;

        void main()
        {
                auto t = new TextFileInput ("TextFile.d");
                foreach (line; t)
                         Cout(line).newline;
        }
}