title: Send files to WiFi printer
body: <p>I am developing an application in which from my mobile I am sending files to the WiFi printer by IP address and port number, which are .txt, .png, .jpg, .doc. They should be printed from the printer. I have tried following code but it is giving me output for .txt file only. What changes are required to get output of all type of files??? Please help...</p>
  
  <pre><code>    import java.io.BufferedInputStream;
      import java.io.File;
      import java.io.FileInputStream;
      import java.io.IOException;
      import java.io.OutputStream;
      import java.net.Socket;
      import java.net.UnknownHostException;
  
      import android.app.Activity;
      import android.os.Bundle;
      import android.view.View;
      import android.widget.Button;
      import android.widget.EditText;
      import android.widget.TextView;
  
      public class MainActivity extends Activity {
  
       private Socket client;
       private FileInputStream fileInputStream;
       private BufferedInputStream bufferedInputStream;
       private OutputStream outputStream;
       private Button button;
       private TextView text;
       private EditText etIp, etPort;
       int port=0;
  
       @Override
       public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        button = (Button) findViewById(R.id.button1);   //reference to the send button
        text = (TextView) findViewById(R.id.textView1);   //reference to the text view
        etIp = (EditText) findViewById(R.id.editText1);
        etPort = (EditText) findViewById(R.id.editText2);
        //Button press event listener
        button.setOnClickListener(new View.OnClickListener() {
  
         public void onClick(View v) {
  
  
           //create file instance
             port=Integer.parseInt(etPort.getText().toString());
             File file = new File("/mnt/sdcard/bluetooth/AnyFile.txt"); 
          try 
          {
  
           client = new Socket(etIp.getText().toString(), port);
  
           byte[] mybytearray = new byte[(int) file.length()]; //create a byte array to file
  
           fileInputStream = new FileInputStream(file);
           bufferedInputStream = new BufferedInputStream(fileInputStream);  
  
           bufferedInputStream.read(mybytearray, 0, mybytearray.length); //read the file
  
           outputStream = client.getOutputStream();
  
           outputStream.write(mybytearray, 0, mybytearray.length); //write file to the output stream byte by byte
           outputStream.flush();
           bufferedInputStream.close();
           outputStream.close();
           client.close();
  
           text.setText("File Sent");
  
  
          } catch (UnknownHostException e) {
           e.printStackTrace();
          } catch (IOException e) {
           e.printStackTrace();
          }
  
  
         }
        });
  
       }
      }
  
  
  
  Manifest file
  
  &lt;uses-permission android:name="android.permission.INTERNET"/&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/&gt;
  &lt;uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/&gt;
  </code></pre>