Java对各种文件的操作详解

Java对各种文件的操作详解

这里不讨论有关apache的commons-io中的FileUtils,只是一些基本的对文件的操作的代码,有时间会整理一个FileUtils的用法的文章。
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 >
< script >
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
</ 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();
 
%>   

你可能感兴趣的:(Java对各种文件的操作详解)