package Lib;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.Writer;
import java.net.Socket;

public final class IO {

	private static Reader _consoleIn = new BufferedReader(new InputStreamReader(System.in));
	private static Writer _consoleOut = new BufferedWriter(new OutputStreamWriter(System.out));

	private IO(){};

	public static Reader consoleReader(){
		return _consoleIn;
	}

	public static Writer consoleWriter(){
		return _consoleOut;
	}

	public static Reader openReader(String filename) throws FileNotFoundException{
		return new BufferedReader(new FileReader(filename));
	}

	public static Writer openWriter(String filename) throws IOException{
		return new BufferedWriter(new FileWriter(filename));
	}

	public static Reader openReceiver(Socket echoSocket) throws IOException{
		return new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
	}

	public static Writer openTransmitter(Socket echoSocket) throws IOException{
		return new BufferedWriter(new OutputStreamWriter(echoSocket.getOutputStream()));
	}

	public static void main(String []args) throws IOException{
		Writer test = openWriter("test");
		test.append("hello");
		test.flush();
		test.close();

	}
}
