package martin;

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.net.Socket;

public final class IO {

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

	private IO(){};

	public static BufferedReader consoleReader(){
		return _consoleIn;
	}

	public static BufferedWriter consoleWriter(){
		return _consoleOut;
	}

	public static BufferedReader openReader(String filename){
		try {
			return new BufferedReader(new FileReader(filename));
		} catch (FileNotFoundException e) {
			System.out.println(filename + " not found" + e.getMessage());
			return null;
		}
	}

	public static BufferedWriter openWriter(String filename){
		try {
			return new BufferedWriter(new FileWriter(filename));
		} catch (IOException e) {
			System.out.println(filename + " opening error" + e.getMessage());
			return null;
		}

	}

	public static BufferedReader openReceiver(Socket echoSocket){
		try {
			return new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
		} catch (IOException e) {
			System.out.println(" socket error");
			return null;
		}
	}

	public static BufferedWriter openTransmitter(Socket echoSocket){
		try {
			return new BufferedWriter(new OutputStreamWriter(echoSocket.getOutputStream()));
		} catch (IOException e) {
			System.out.println(" socket error");
			return null;
		}
	}



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

	}
}
