`
liuxinglanyue
  • 浏览: 546787 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java对各种文件的操作详解(转)

阅读更多

http://blog.csdn.net/Java2King/archive/2009/11/01/4754054.aspx

java中提供了io类库,可以轻松的用java实现对文件的各种操作。下面就来说一下如何用java来实现这些操作。     
      
新建目录<%@ page contentType="text/html;charset=gb2312"%>     
<%     
//String URL = request.getRequestURI();     
String filePath="C:\\测试\\";     
filePath=filePath.toString();//中文转换     
java.io.File myFilePath=new java.io.File(filePath);     
if(!myFilePath.exists())     
myFilePath.mkdir();     
%>     
      
新建文件     
<%@ page contentType="text/html;charset=gb2312"%>     
<%@ page import="java.io.*" %>     
<%     
String filePath="c:/测试/newFile.txt";     
filePath=filePath.toString();     
File myFilePath=new File(filePath);     
if(!myFilePath.exists())     
myFilePath.createNewFile();     
FileWriter resultFile=new FileWriter(myFilePath);     
PrintWriter myFile=new PrintWriter(resultFile);     
String content ="这是测试数据";     
String strContent = content.toString();     
myFile.println(strContent);     
resultFile.close();     
%>     
      
删除文件<%@ page contentType="text/html;charset=gb2312"%>     
<%     
String filePath="c://测试//newFile.txt";     
filePath=filePath.toString();     
java.io.File myDelFile=new java.io.File(filePath);     
if(myDelFile.exists())     
{       
    myDelFile.delete();     
    out.println(filePath+"删除成功!!!");     
}     
else    
{     
    out.println(filePath+"该文件不存在");     
}     
%>     
文件拷贝<%@ page contentType="text/html; charset=gb2312" %>     
<%@ page import="java.io.*" %>     
<%     
int bytesum=0;     
int byteread=0;     
//file:读到流中     
InputStream inStream=new FileInputStream("c://测试//newFile.txt");     
FileOutputStream fs=new FileOutputStream( "c://测试//copyFile.txt");     
byte[]  buffer =new  byte[1444];     
int length;     
while ((byteread=inStream.read(buffer))!=-1)     
 {     
   out.println("<DT><B>"+byteread+"</B></DT>");     
   bytesum+=byteread;     
   out.println(bytesum);     
   fs.write(buffer,0,byteread);     
 }     
inStream.close();     
%>     
      
整个文件夹拷贝     
<%@ page contentType="text/html;charset=gb2312"%>     
<%@ page import="java.io.*" %>     
<%String url1="C:/aaa";     
  String url2="d:/java/";     
  (new File(url2)).mkdirs();     
 File[] file=(new File(url1)).listFiles();     
 for(int i=0;i<file.length;i++){     
  if(file[i].isFile()){     
   file[i].toString();     
   FileInputStream input=new FileInputStream(file[i]);     
   FileOutputStream output=new FileOutputStream(url2+"/"+(file[i].getName()).toString());     
   byte[] b=new byte[1024*5];     
    int len;     
    while((len=input.read(b))!=-1){     
    output.write(b,0,len);     
    }     
    output.flush();     
    output.close();     
    input.close();     
  }     
 }     
%>     
      
文件下载     
<%@ page contentType="text/html; charset=gb2312"%>     
<%@ page import="java.io.*" %>     
<%     
  String fileName = "newFile.txt".toString();     
  //读到流中     
  InputStream inStream=new FileInputStream("c://测试//newFile.txt");     
  //设置输出的格式     
  response.reset();     
  response.setContentType("text/plain");     
  response.addHeader("Content-Disposition","attachment; filename=\"" + fileName + "\"");     
  //循环取出流中的数据     
  byte[] b = new byte[100];     
  int len;     
  ServletOutputStream outStream = response.getOutputStream();     
      
  while((len=inStream.read(b)) >0)     
  outStream.write(b,0,len);     
  outStream.flush();     
  outStream.close();     
  inStream.close();     
%>     
      
数据库字段中的文件下载     
<%@ page contentType="text/html;charset=gb2312"%>     
<%@ page import="java.util.*,java.sql.*,java.io.*"%>     
<%     
    String id = request.getParameter("id");     
    if(id==null)     
    {   throw new Exception ("没有找到图片");     
    }     
    else    
    {     
       try    
       {     
com.gzrealmap.lib.jdbc.JDBCUtil  SqlBean= com.gzrealmap.lib.jdbc.JDBCUtil.getInstance();     
               SqlBean.connect();     
               String sql = "select * from innernews where id = '"+79+"'";     
               ResultSet rs = SqlBean.queryforUpdate(sql);     
               rs.next();     
               //String fileNamedb = rs.getString("imageName");     
               String file= rs.getString("acc");     
               //String fileName = new String(fileNamedb.getBytes(),"iso-8859-1");     
               String fileName = "a.jpg";     
                response.setHeader("Content-Disposition",  "inline; filename=\"" + fileName + "\"");         
               String filter = fileName.substring(fileName.lastIndexOf("."));     
                   
               if(filter.equals(".txt"))     
               {     
                   response.setContentType("text/plain");     
               }     
               else if(filter.equals(".doc")||filter.equals(".dot"))     
               {     
                   response.setContentType("application/msword");     
               }     
               else    
               {     
                 response.setContentType("image/jpeg;charset=GB2312");     
               }     
               ServletOutputStream o = response.getOutputStream();     
               //o.write(file);     
               out.println(file);     
               //o.flush();     
               //o.close();     
               SqlBean.disconnect();     
       }     
        catch(Exception ex)     
       {     
           out.println(ex.getMessage());     
       }     
    }       
%>     
      
把网页保存成文件<%@ page contentType="text/html;charset=gb2312"%>     
<%@ page import="java.text.*,java.util.*,java.net.*,java.io.*"%>     
<%     
 URL stdURL = null;     
 BufferedReader stdIn = null;     
 PrintWriter stdOut = null;     
 try {     
  stdURL = new URL("http://www.163.com");     
 }     
 catch (MalformedURLException e) {     
   throw e;     
 }     
      
try {     
    //将字节流转变成为字符流     
    stdIn = new BufferedReader(new InputStreamReader(stdURL.openStream()));     
    String theFileName = "c://测试//163.html";     
    stdOut = new PrintWriter(new BufferedWriter(new FileWriter(theFileName.toString())));     
 }     
 catch (IOException e) {     
 }     
      
 /***把URL指定的页面以流的形式读出,写成指定的文件***/    
 try {     
    String strHtml = "";     
   while((strHtml = stdIn.readLine())!=null) {     
   stdOut.println(strHtml);     
   }     
 }     
 catch (IOException e) {     
   throw e;     
 }     
 finally {       
   try {     
     if(stdIn != null)     
       stdIn.close();     
     if(stdOut != null)     
       stdOut.close();     
       }     
   catch (Exception e) {     
     System.out.println(e);     
   }     
 }     
%>     
      
直接下载网上的文件     
<%@ page contentType="text/html;charset=gb2312"%>     
<%@ page import="java.io.*"%>     
<%@ page import="java.net.*"%>     
<%     
  int bytesum=0;     
  int byteread=0;     
  URL url = new URL("http://pimg.163.com/sms/micheal/logo.gif");     
  URLConnection conn = url.openConnection();     
  InputStream inStream = conn.getInputStream();     
      
  /**   
  String theFileName = "c:/测试/logo.gif";   
  theFileName = theFileName.toString();   
  File myFilePath=new File(theFileName);   
  if(!myFilePath.exists())   
  myFilePath.createNewFile();   
  **/    
      
  FileOutputStream fs=new FileOutputStream("c:/测试/logo2.gif");     
  byte[]  buffer =new  byte[1444];     
    while ((byteread=inStream.read(buffer))!=-1)     
    {     
       out.println("<DT><B>"+byteread+"</B></DT>");     
       bytesum+=byteread;     
       //System.out.println(bytesum);     
       fs.write(buffer,0,byteread);     
     }     
%>     
      
按行读文件 <%@ page contentType="text/html; charset=gb2312" %>     
<%@ page import="java.io.*" %>     
<%     
FileReader myFileReader=new FileReader("c:/哈哈.txt");     
BufferedReader myBufferedReader=new BufferedReader(myFileReader);     
String myString=null;     
String resultString=new String();     
while((myString=myBufferedReader.readLine())!=null) {     
resultString=resultString+myString+"<br>";     
}     
out.println(resultString);     
myFileReader.close();     
%>     
      
对word文档的处理(上传与下载)<%@ page contentType="application/msword" %>     
<!-- 以上这行设定本网页为excel格式的网页 -->     
<%     
   response.setHeader("Content-disposition","inline; filename=test1.doc"); //线上浏览方式     
  // response.setHeader("Content-disposition","attachment; filename=test1.doc");//下载方式     
   //以上这行设定传送到前端浏览器时的档名为test1.doc     
   //就是靠这一行,让前端浏览器以为接收到一个word档     
%>     
//然后输出动态内容就可以得到一个word文档了     
      
1,打开:     
1)文件头上加:<%@ page  contentType="application/msword"%>      
xml文件里:     
<mime-mapping>     
        <extension>doc</extension>     
        <mime-type>application/msword</mime-type>     
</mime-mapping>     
2)可以用js,以下代码来自引用:     
<%@ page contentType="text/html;charset=gb2312" import= "java.io.*"%>     
<HTML>     
<mce:script type="text/javascript"><!--  
     
var wrd=new ActiveXObject("Word.Application")     
wrd.visible=true    
alert ("您的"+wrd.Application.Caption+"安装路径为:\n"+wrd.Application.Path+"\n版本号是:"+ wrd.Application.version+"\n注册使用者是:"+wrd.Application.UserName)     
wrd.Documents.Add()     
//wrd.Documents.Open("c:\\exam.doc")     
wrd.Selection.TypeText("This is some text.")     
wrd.Application.Activate()     
wrd.ActiveDocument.SaveAs("c:\\exam111.doc")     
wrd=null    
// --></mce:script>     
</HTML>     
      
2,下载:     
<%@ page contentType="text/html;charset=gb2312" import= "java.io.*"%>     
<%// 得到文件名字和路径     
  String filename = "jsp.doc";     
  String filepath = "C:\\";     
      
  // 设置响应头和下载保存的文件名     
  response.setContentType("APPLICATION/OCTET-STREAM");     
  response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");     
      
  // 打开指定文件的流信息     
  java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename);     
  //FileOutputStream out  = new FileOutputStream(filepath+"测试\\" + filename);     
  // 写出流信息     
  int i;     
  while ((i=fileInputStream.read()) != -1) {     
   out.write(i);     
  }     
  fileInputStream.close();     
  out.close();     
 %>  
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics