java對各種檔案的操作詳解

來源:互聯網
上載者:User

 java中提供了io類庫,可以輕鬆的用java實現對檔案的各種操作。下面就來說一下如何用java來實現這些操作。 </p><p>建立目錄<%@ page contentType="text/html;charset=gb2312"%><br /><%<br />//String URL = request.getRequestURI();<br />String filePath="C://測試//";<br />filePath=filePath.toString();//中文轉換<br />java.io.File myFilePath=new java.io.File(filePath);<br />if(!myFilePath.exists())<br />myFilePath.mkdir();<br />%> </p><p>建立檔案<br /><%@ page contentType="text/html;charset=gb2312"%><br /><%@ page import="java.io.*" %><br /><%<br />String filePath="c:/測試/newFile.txt";<br />filePath=filePath.toString();<br />File myFilePath=new File(filePath);<br />if(!myFilePath.exists())<br />myFilePath.createNewFile();<br />FileWriter resultFile=new FileWriter(myFilePath);<br />PrintWriter myFile=new PrintWriter(resultFile);<br />String content ="這是測試資料";<br />String strContent = content.toString();<br />myFile.println(strContent);<br />resultFile.close();<br />%> </p><p>刪除檔案<%@ page contentType="text/html;charset=gb2312"%><br /><%<br />String filePath="c://測試//newFile.txt";<br />filePath=filePath.toString();<br />java.io.File myDelFile=new java.io.File(filePath);<br />if(myDelFile.exists())<br />{<br /> myDelFile.delete();<br /> out.println(filePath+"刪除成功!!!");<br />}<br />else<br />{<br /> out.println(filePath+"該檔案不存在");<br />}<br />%><br />檔案拷貝<%@ page contentType="text/html; charset=gb2312" %><br /><%@ page import="java.io.*" %><br /><%<br />int bytesum=0;<br />int byteread=0;<br />//file:讀到流中<br />InputStream inStream=new FileInputStream("c://測試//newFile.txt");<br />FileOutputStream fs=new FileOutputStream( "c://測試//copyFile.txt");<br />byte[] buffer =new byte[1444];<br />int length;<br />while ((byteread=inStream.read(buffer))!=-1)<br /> {<br /> out.println("<DT><B>"+byteread+"</B></DT>");<br /> bytesum+=byteread;<br /> out.println(bytesum);<br /> fs.write(buffer,0,byteread);<br /> }<br />inStream.close();<br />%> </p><p>整個檔案夾拷貝<br /><%@ page contentType="text/html;charset=gb2312"%><br /><%@ page import="java.io.*" %><br /><%String url1="C:/aaa";<br /> String url2="d:/java/";<br /> (new File(url2)).mkdirs();<br /> File[] file=(new File(url1)).listFiles();<br /> for(int i=0;i<file.length;i++){<br /> if(file[i].isFile()){<br /> file[i].toString();<br /> FileInputStream input=new FileInputStream(file[i]);<br /> FileOutputStream output=new FileOutputStream(url2+"/"+(file[i].getName()).toString());<br /> byte[] b=new byte[1024*5];<br /> int len;<br /> while((len=input.read(b))!=-1){<br /> output.write(b,0,len);<br /> }<br /> output.flush();<br /> output.close();<br /> input.close();<br /> }<br /> }<br />%> </p><p>檔案下載<br /><%@ page contentType="text/html; charset=gb2312"%><br /><%@ page import="java.io.*" %><br /><%<br /> String fileName = "newFile.txt".toString();<br /> //讀到流中<br /> InputStream inStream=new FileInputStream("c://測試//newFile.txt");<br /> //設定輸出的格式<br /> response.reset();<br /> response.setContentType("text/plain");<br /> response.addHeader("Content-Disposition","attachment; filename=/"" + fileName + "/"");<br /> //迴圈取出流中的資料<br /> byte[] b = new byte[100];<br /> int len;<br /> ServletOutputStream outStream = response.getOutputStream(); </p><p> while((len=inStream.read(b)) >0)<br /> outStream.write(b,0,len);<br /> outStream.flush();<br /> outStream.close();<br /> inStream.close();<br />%> </p><p>資料庫欄位中的檔案下載<br /><%@ page contentType="text/html;charset=gb2312"%><br /><%@ page import="java.util.*,java.sql.*,java.io.*"%><br /><%<br /> String id = request.getParameter("id");<br /> if(id==null)<br /> { throw new Exception ("沒有找到圖片");<br /> }<br /> else<br /> {<br /> try<br /> {<br />com.gzrealmap.lib.jdbc.JDBCUtil SqlBean= com.gzrealmap.lib.jdbc.JDBCUtil.getInstance();<br /> SqlBean.connect();<br /> String sql = "select * from innernews where id = '"+79+"'";<br /> ResultSet rs = SqlBean.queryforUpdate(sql);<br /> rs.next();<br /> //String fileNamedb = rs.getString("imageName");<br /> String file= rs.getString("acc");<br /> //String fileName = new String(fileNamedb.getBytes(),"iso-8859-1");<br /> String fileName = "a.jpg";<br /> response.setHeader("Content-Disposition", "inline; filename=/"" + fileName + "/"");<br /> String filter = fileName.substring(fileName.lastIndexOf(".")); </p><p> if(filter.equals(".txt"))<br /> {<br /> response.setContentType("text/plain");<br /> }<br /> else if(filter.equals(".doc")||filter.equals(".dot"))<br /> {<br /> response.setContentType("application/msword");<br /> }<br /> else<br /> {<br /> response.setContentType("image/jpeg;charset=GB2312");<br /> }<br /> ServletOutputStream o = response.getOutputStream();<br /> //o.write(file);<br /> out.println(file);<br /> //o.flush();<br /> //o.close();<br /> SqlBean.disconnect();<br /> }<br /> catch(Exception ex)<br /> {<br /> out.println(ex.getMessage());<br /> }<br /> }<br />%> </p><p>把網頁儲存成檔案<%@ page contentType="text/html;charset=gb2312"%><br /><%@ page import="java.text.*,java.util.*,java.net.*,java.io.*"%><br /><%<br /> URL stdURL = null;<br /> BufferedReader stdIn = null;<br /> PrintWriter stdOut = null;<br /> try {<br /> stdURL = new URL("http://www.163.com");<br /> }<br /> catch (MalformedURLException e) {<br /> throw e;<br /> } </p><p>try {<br /> //將位元組流轉變成為字元流<br /> stdIn = new BufferedReader(new InputStreamReader(stdURL.openStream()));<br /> String theFileName = "c://測試//163.html";<br /> stdOut = new PrintWriter(new BufferedWriter(new FileWriter(theFileName.toString())));<br /> }<br /> catch (IOException e) {<br /> } </p><p> /***把URL指定的頁面以流的形式讀出,寫成指定的檔案***/<br /> try {<br /> String strHtml = "";<br /> while((strHtml = stdIn.readLine())!=null) {<br /> stdOut.println(strHtml);<br /> }<br /> }<br /> catch (IOException e) {<br /> throw e;<br /> }<br /> finally {<br /> try {<br /> if(stdIn != null)<br /> stdIn.close();<br /> if(stdOut != null)<br /> stdOut.close();<br /> }<br /> catch (Exception e) {<br /> System.out.println(e);<br /> }<br /> }<br />%> </p><p>直接下載網上的檔案<br /><%@ page contentType="text/html;charset=gb2312"%><br /><%@ page import="java.io.*"%><br /><%@ page import="java.net.*"%><br /><%<br /> int bytesum=0;<br /> int byteread=0;<br /> URL url = new URL("http://pimg.163.com/sms/micheal/logo.gif");<br /> URLConnection conn = url.openConnection();<br /> InputStream inStream = conn.getInputStream(); </p><p> /**<br /> String theFileName = "c:/測試/logo.gif";<br /> theFileName = theFileName.toString();<br /> File myFilePath=new File(theFileName);<br /> if(!myFilePath.exists())<br /> myFilePath.createNewFile();<br /> **/ </p><p> FileOutputStream fs=new FileOutputStream("c:/測試/logo2.gif");<br /> byte[] buffer =new byte[1444];<br /> while ((byteread=inStream.read(buffer))!=-1)<br /> {<br /> out.println("<DT><B>"+byteread+"</B></DT>");<br /> bytesum+=byteread;<br /> //System.out.println(bytesum);<br /> fs.write(buffer,0,byteread);<br /> }<br />%> </p><p>按行讀檔案 <%@ page contentType="text/html; charset=gb2312" %><br /><%@ page import="java.io.*" %><br /><%<br />FileReader myFileReader=new FileReader("c:/哈哈.txt");<br />BufferedReader myBufferedReader=new BufferedReader(myFileReader);<br />String myString=null;<br />String resultString=new String();<br />while((myString=myBufferedReader.readLine())!=null) {<br />resultString=resultString+myString+"<br>";<br />}<br />out.println(resultString);<br />myFileReader.close();<br />%> </p><p>對word文檔的處理(上傳與下載)<%@ page contentType="application/msword" %><br /><!-- 以上這行設定本網頁為excel格式的網頁 --><br /><%<br /> response.setHeader("Content-disposition","inline; filename=test1.doc"); //線上瀏覽方式<br /> // response.setHeader("Content-disposition","attachment; filename=test1.doc");//下載方式<br /> //以上這行設定傳送到前端瀏覽器時的檔名為test1.doc<br /> //就是靠這一行,讓前端瀏覽器以為接收到一個word檔<br />%><br />//然後輸出動態內容就可以得到一個word文檔了 </p><p>1,開啟:<br />1)檔案頭上加:<%@ page contentType="application/msword"%><br />xml檔案裡:<br /><mime-mapping><br /> <extension>doc</extension><br /> <mime-type>application/msword</mime-type><br /></mime-mapping><br />2)可以用js,以下代碼來自引用:<br /><%@ page contentType="text/html;charset=gb2312" import= "java.io.*"%><br /><HTML><br /><mce:script type="text/javascript"><!--</p><p>var wrd=new ActiveXObject("Word.Application")<br />wrd.visible=true<br />alert ("您的"+wrd.Application.Caption+"安裝路徑為:/n"+wrd.Application.Path+"/n版本號碼是:"+ wrd.Application.version+"/n註冊使用者是:"+wrd.Application.UserName)<br />wrd.Documents.Add()<br />//wrd.Documents.Open("c://exam.doc")<br />wrd.Selection.TypeText("This is some text.")<br />wrd.Application.Activate()<br />wrd.ActiveDocument.SaveAs("c://exam111.doc")<br />wrd=null<br />// --></mce:script><br /></HTML> </p><p>2,下載:<br /><%@ page contentType="text/html;charset=gb2312" import= "java.io.*"%><br /><%// 得到檔案名稱字和路徑<br /> String filename = "jsp.doc";<br /> String filepath = "C://"; </p><p> // 設定回應標頭和下載儲存的檔案名稱<br /> response.setContentType("APPLICATION/OCTET-STREAM");<br /> response.setHeader("Content-Disposition","attachment; filename=/"" + filename + "/""); </p><p> // 開啟指定檔案的流資訊<br /> java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename);<br /> //FileOutputStream out = new FileOutputStream(filepath+"測試//" + filename);<br /> // 寫出流資訊<br /> int i;<br /> while ((i=fileInputStream.read()) != -1) {<br /> out.write(i);<br /> }<br /> fileInputStream.close();<br /> out.close();<br /> %>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.