`
qxmcool
  • 浏览: 91199 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

java对各种文件的操作详解

    博客分类:
  • java
阅读更多
Java代码
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  
   
文件下载  
<%@ 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" %>  
 
<%  
   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文件里:  
 
        doc  
        application/msword  
 
2)可以用js,以下代码来自引用:  
<%@ page contentType="text/html;charset=gb2312" import= "java.io.*"%>  
 
 
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 
 
 
   
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