当前页面: 开发资料首页 → J2SE 专题 → J2SE:Java对各种文件的操作详解 
J2SE:Java对各种文件的操作详解 
摘要: J2SE:Java对各种文件的操作详解  
<table width="98%" align="center">    
        <tr>            <td>            Java对各种文件的操作详解
            </td>        </tr>        <tr>            <td> </td>        </tr>        <tr>            <td>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(""+byteread+"");
   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  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://image.21tx.com/image/20060513/10451.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(""+byteread+"");
       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+"
"; 
} 
out.println(resultString); 
myFileReader.close(); 
%> 
 
对word文档的处理(上传与下载)<%@ page contentType="application/msword" %>