Read file content in the applet

zhaozj2021-02-17  55

Thank the author: Wuhan University School of Communication and Information Ding Bo Tao ---- we know, for security reasons, Applet is not allowed to operate on the document in the Java Applet, not only allowed to write files, but is not allowed to read files. Although we use the statement Java that uses the file operation when we prepare the applet, you can run normally when you debug in the development tool (such as cafe), but when we run this applet in your browser, the browser will report an error. But sometimes we must read the contents of the file, such as to display the .txt file content in the server in the applet, is there no way?

---- Do not! There is a way. The decision is that we don't want to process files on these servers as normal files, but use them as network resources to get their content. There are two classes that can be used to obtain network resources in Java, one is the URL class, the other is the URLConnection class. Both classes provide methods of reading resource information in a word stream, and can be judged for the type of resource information to make corresponding processing. The difference is that the information available by the URLConnection class is much more than the URL class. In addition to obtaining resource data, there can also provide resources for resource length, resource transmission time, new update time, resource coding, title of resource, and other information. .

---- The following is a common method of two classes.

URL class: • URL (String, String, InT, String) Construction Method, create a URL object, URL (String, String, String) constructor containing protocol type, host name, port number, and path, create a type of protocol type The URL object of the host name and path, where the port number is the default value · URL (String) constructor, creates a URL object, the parameter combines the protocol, hostname, port number, and paths · URL (URL, STRING) constructor Create a new URL object with the relative path based on a given URL object · Object getContent () retrieve the URL content information, and return to the object · InputStream OpenStream () Returns a input stream from the resource · URLConnection OpenConnection () Generates a URLConnection object

URLConnection class: · Protected URLConnection (URL) Construction Method, create a URLConnection class for specifying the URL object · Object getContent () Returns the content of the URL object · InputStream getInputStream () Get the byte stream read from the object · protected Static String GuessContentTypefromstream (InputStream IS) is speculated according to the input stream

---- The .txt file content on the server is described below to illustrate how to read the file in the applet. Set the server's IP address of 202.114.1.16, the path to the .txt file is /File/Sample.txt. The following is the source code for the Applet reads the application.txt content.

//getfile.html Applet </ title> </ head> <body> this is the contents of the txt file on the server <br> <applet code = "getfile.class" Width = 200 height = 100> </ applet> </ body> </ html> // getfile.javaimport java.awt. *; import java.applet. *; import java.net. *; import java.io. * ;</p> <p>Public class getfile extends applet {string info;</p> <p>Public void init () {url url; urlConnection urlc;</p> <p>Resize (200,100); setBackground (color.white);</p> <p>Try {url = new url ("http://202.114.1.1.16/file/sample.txt"); urlc = url.openconnection (); urlc.connect (); info = getInfo (urlc);} catch (MalforMedurLexception MFE ) {System.out.println ("URL FORM ERROR!");} Catch (ioexception ie) {system.out.println ("IO Exception!");}}</p> <p>Public Void Paint (Graphics G) {g.setcolor (Color.red); g.drawstring (INFO, 50, 50);</p> <p>Public String getInfo (urlConnection urlc) {string txt = new string (); inputstream is; int i;</p> <p>Try {is = urlc.getinputStream (); i = is.read (); while (i! = -1) {txt = txt (char) i; i = is.read ();} is.close () } Catch (ioException iee) {system.out.println ("IO Exception!"); Txt = new string ("File Read Failed!");</p> <p>Return txt;}}</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-29960.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="29960" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.040</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = '_2B8AVvVVMZPG255uDyWiXlQxnJArN1QQL1OMHrFMkMCTzhOlic0TCGhwnp8uv95TyoLhNhWxmbSQ6X6xHMQPF_2Fg_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>