Download a file over a network in J2ME midlet
By: Eriq Tan
This sample code can be used to download and view a file over a network in a TextBox component Through an httpConnection,
Important Points:
1) One benefit of using an HttpConnection (as compared to InputStream or StreamConnection) is the availability of a method to check for the length of the remote data. The data can then be read in one fell-swoop, in contrast to reading one character/byte at a time.
2) Before leaving the viewFile() method, check to the status of the input stream and the httpConnection, and close if necessary.
3) This example is written for version 1.0.3 of MIDP and CLDC
Java Code:
/*-------------------------------------------------- * 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.corej2me.com/midpbook_v1e1/scratch/fileViewer.hlp"; 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(); } } }
Archived Comments
1. Whe I compiled the above code, it sends me to the "Viewer" and when I select "View&qu
View Tutorial By: Koo Larbi at 2014-08-02 22:32:05
2. no pgmj hjg ahj qapj jgdhd bdjmgt khe.a.d phtg0ad. ad,htgwg ah
View Tutorial By: ram at 2013-08-21 03:27:05
3. how to download suport to my phone
send me aplication to downloaded j2me code and java midlet
View Tutorial By: dede.mouljadie at 2012-04-28 09:42:45
4. how to download suport to my phone
send me aplication to downloaded j2me code and java midlet
View Tutorial By: dede.mouljadie at 2012-04-28 09:39:21
5. Hi, I second that Raghav, kindly can u email me a compiled files as well, am doin a research about r
View Tutorial By: SAM at 2011-03-06 05:03:09
6. samples
View Tutorial By: kamlesh at 2010-11-18 03:33:09
7. Can you mail me the compiled files, Please. Thank u.
View Tutorial By: raghav at 2010-09-14 21:23:17
8. Cool! Downloading the whole file with the HttpConnection length method. Nice!
View Tutorial By: Luddite at 2010-06-26 12:26:26
9. when i trying this code . i am getting this error
java.lang.NoClassDefFoundError: com
View Tutorial By: sharath at 2010-04-06 00:58:29
10. when i trying to build the above program it is giving warning on my console like
"To avo
View Tutorial By: bhagyalaxmi at 2008-10-10 23:45:45
11. It works like a charm. Thanks a lot.
View Tutorial By: Balram at 2008-08-22 21:18:44
Comment on this tutorial
- Data Science
- Android
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Related Tutorials
Code sample to Send SMS from a J2ME application.
Adding your own Application icon for your J2ME application (jar file)
Play a multimedia file in J2ME Program (Audio/Video) using MMAPI
Using HttpConnection in J2ME (Retrieve web content from a website to a phone)
Using HTTP vs UDP vs Socket in J2ME
RMSCookieConnector - Using Cookies in J2ME
Client Server in J2ME (Socket Programming sample)
Datagrams in J2ME (UDP Programming sample)
POST UTF-8 encoded data to the server in J2ME
Using alerts and tickers in J2ME
Using List to create a Menu and Menu items in J2ME
lists, forms, choices, gauges, text fields, text boxes in J2ME
Timer and TimerTask example in J2ME