Programming Tutorials

Sample Java program shows how to Read a file over a network using J2ME midlet

By: Bob Wilson in J2ME Tutorials on 2007-08-23  

Update: As J2ME is an old technology, it is now deprecated and not recommended to be used in new projects.

This Sample Java program shows how to Read a file over a network using J2ME midlet.

If you want to download a file from a web server into your phone using J2ME program then you can use this sample J2ME program to retrieve the file over the internet and show it on the midlet. Do not forget to change the String url value to your own web server url. There can be many uses for this application. I used this to read files from my remote desktop computer from my phone. But for doing that, you will need another desktop client that will read the local PC files and upload selected files to a central web server. Once the files are uploaded using desktop client then I used this J2ME client to provide remote access to these files through their phones.

/*--------------------------------------------------
* FileViewer.java
*
* Download and view a file over a network 
*-------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;

public class FileViewer extends MIDlet implements CommandListener
{
  private Display display;	    // Reference to Display object
  private TextBox tbViewer;  // View file contents in a textbox
  private Command cmView;    // Command to view file
  private Command cmExit;    // Command to exit
  private String url = "http://www.m-indya.com/index.html";  

  public FileViewer()
  { 
    display = Display.getDisplay(this);
    
    // Define commands
    cmView = new Command("View", Command.SCREEN, 2);
    cmExit = new Command("Exit", Command.EXIT, 1);

    tbViewer = new TextBox("Viewer", "", 250, TextField.ANY);
    tbViewer.addCommand(cmView);
    tbViewer.addCommand(cmExit);
    tbViewer.setCommandListener(this);    
  }

  public void startApp()
  {
    display.setCurrent(tbViewer);
  }    

  private void viewFile() throws IOException
  {
    HttpConnection http = null;
    InputStream iStrm = null;
    
    try
    {
      // Create the connection
      http = (HttpConnection) Connector.open(url);
      
      //----------------
      // Client Request
      //----------------
      // 1) Send request method
      http.setRequestMethod(HttpConnection.GET);
      
      // 2) Send header information (this header is optional)
      http.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0");
      
      // 3) Send body/data - No data for this request
      
      //----------------
      // Server Response
      //----------------
      // 1) Get status Line
      System.out.println("Msg: " + http.getResponseMessage());                  
      System.out.println("Code: " + http.getResponseCode());                
      
      // 2) Get header information 
      if (http.getResponseCode() == HttpConnection.HTTP_OK)
      {
        // 3) Get data (show the file contents)
        iStrm = http.openInputStream();
        int length = (int) http.getLength();
        if (length > 0)
        {
          byte serverData[] = new byte[length];
          iStrm.read(serverData);
          tbViewer.setString(new String(serverData));
        }
      }
    }
    finally
    {
      // Clean up
      if (iStrm != null)
        iStrm.close();
      if (http != null)
        http.close();
    }
  }

  public void pauseApp()
  { }

  public void destroyApp(boolean unconditional)
  { }

  public void commandAction(Command c, Displayable s)
  {
    if (c == cmView)
    {
      try
      {
        viewFile();
      }
      catch (Exception e)
      {
        System.out.println(e.toString());
      }
    }
    else if (c == cmExit)
    {
      destroyApp(false);
      notifyDestroyed();
    }	
  }
}





Add Comment

* Required information
1000

Comments

No comments yet. Be the first!

Most Viewed Articles (in J2ME )

Latest Articles (in J2ME)