Java中对文件的操作

java中提供了io类库,可以轻松的用java实现对文件的各种操作。下面就来说一下如何用java来实现这些操作。

 1。新建目录

<%@ page contentType="text/html;charset=gb2312"%>
<%
String filePath
="c:/aaa/";
filePath
=filePath.toString();//中文转换
java.io.File myFilePath
=new java.io.File(filePath);
if(!myFilePath.exists())
myFilePath.mkdir();
%>

2。新建文件

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*" %>
<%
String filePath
="c:/哈哈.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 strContent 
= "中文测试".toString();
myFile.println(strContent);
resultFile.close();
%>

3。删除文件

<%@ page contentType="text/html;charset=gb2312"%>
<%
String filePath
="c:/支出证明单.xls";
filePath
=filePath.toString();
java.io.File myDelFile
=new java.io.File(filePath);
myDelFile.delete();
%>

4。文件拷贝

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.io.*" %>
<%
int bytesum=0;
int byteread=0
//读到流中
InputStream inStream=new FileInputStream("c:/aaa.doc");
FileOutputStream fs
=new FileOutputStream( "d:/aaa.doc");byte[] buffer =new byte[1444];
int length;
while ((byteread=inStream.read(buffer))!=-1)
{
out.println(
"<DT><B>"+byteread+"</B></DT>");
bytesum
+=byteread;
System.out.println(bytesum);
fs.write(buffer,
0,byteread);
}
 
inStream.close(); 
%>

5。整个文件夹拷贝

<%@ 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();
}

}

%> 

6。文件下载

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.io.*" %>
<%
String fileName 
= "zsc104.swf".toString();
//读到流中
InputStream inStream=new FileInputStream("c:/zsc104.swf");
//设置输出的格式 
response.reset(); 
response.setContentType(
"bin");
response.addHeader(
"Content-Disposition","attachment; filename="" + fileName + """);
//循环取出流中的数据 
byte[] b = new byte[100]; 
int len; 
while((len=inStream.read(b)) >0
response.getOutputStream().write(b,
0,len); 
inStream.close(); 
%>

7。数据库字段中的文件下载

<%@ page contentType="text/html; charset=gb2312" %>

<%@ page import="java.sql.*"%>

<%@ page import="java.lang.*" %>

<%@ page import="java.io.*" %>

<%@ page import="com.jspsmart.upload.*" %>
<%@ page import="DBstep.iDBManager2000.*"%>
<%
int bytesum=0;
int byteread=0;
//打开数据库
ResultSet result=null;
String Sql
=null;
PreparedStatement prestmt
=null
DBstep.iDBManager2000 DbaObj
=new DBstep.iDBManager2000();
DbaObj.OpenConnection();
//取得数据库中的数据
Sql="select * from t_local_zhongzhuan ";
result
=DbaObj.ExecuteQuery(Sql);
result.next();
//将数据库中的数据读到流中 
InputStream inStream=result.getBinaryStream("content"); 
FileOutputStream fs
=new FileOutputStream( "c:/dffdsafd.doc");
byte[] buffer =new byte[1444];
int length;
while ((byteread=inStream.read(buffer))!=-1)
{
out.println("<DT><B>"+byteread+"</B></DT>");
bytesum
+=byteread;
System.
out.println(bytesum);
fs.write(buffer,
0,byteread);
}

%>

8。把网页保存成文件

<%@ page import="java.text.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.net.*"%>
<%
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()));
stdOut 
= new PrintWriter(new BufferedWriter(new FileWriter("c:/163.html")));
}

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);
}

}

%>

9。直接下载网上的文件

<%@ 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();
FileOutputStream fs
=new FileOutputStream( "c:/abc.gif");
byte[] buffer =new byte[1444];
int length;
while ((byteread=inStream.read(buffer))!=-1)
{
out.println(
"<DT><B>"+byteread+"</B></DT>");
bytesum
+=byteread;
System.out.println(bytesum);
fs.write(buffer,
0,byteread);
}

%>

10。按行读文件

<%@ 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();
%>
 

11。 数据库里字段文件直接下载到客户端

<%@ page import="java.sql.*"%>
<%@ page import="java.lang.*" %>
<%@ page import="java.io.*" %>
<%@ page import="com.jspsmart.upload.*" %>
<%@ page import="DBstep.iDBManager2000.*"%>
<%
  String fileName 
= "bb.doc".toString();
  
//打开数据库
  ResultSet result=null;
  String Sql
=null;
  PreparedStatement prestmt
=null
  DBstep.iDBManager2000 DbaObj
=new DBstep.iDBManager2000();
  DbaObj.OpenConnection();
//取得数据库中的数据
Sql="select  *  from  marklist order by markdate desc";
result
=DbaObj.ExecuteQuery(Sql);
result.next();
//将数据库中的数据读到流中
  InputStream in =result.getBinaryStream("markbody"); 
//设置输出的格式 
  response.reset(); 
  response.setContentType(
"application/Msword");
  response.addHeader(
"Content-Disposition","attachment; filename="" + fileName + """);
//循环取出流中的数据 
  byte[] b = new byte[1024]; 
  
int len; 
  
while((len=in.read(b)) >0)
  response.getOutputStream().write(b,
0,len);
  in.close(); 
%>


 12。文件夹遍历

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.io.*" %>
<%
String url1
="C:/aaa";
File  f
=(new File(url1));
if(f.isDirectory()){
       File [] fe 
= f.listFiles();
       go_on:
      
for (int i = 0;i<fe.length;i++){
      
if (fe[i].isDirectory()){                           
    File [] fe1 
= fe[i].listFiles();
    
for (int j = 0;j<fe1.length;j++){
    
if (fe1[j].isDirectory())
    
continue go_on;
    out.println(fe1[j].toString());
            }

        }
                            
     
else out.println(fe[i].toString());            
    }

  }
    
%>

 13。通过字符编码移动文件

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.io.*" %>
<%
String ret
=new String();
try
{
  
byte[] bytes=new byte[102400];
  InputStream in
=new FileInputStream("c:/aaa.doc");
  in.read(bytes);
  ret
=new sun.misc.BASE64Encoder().encode(bytes); //具体的编码方法
  in.close();
}

catch(FileNotFoundException e)
{
  e.printStackTrace();
}

catch(java.io.IOException ex)
{
  ex.printStackTrace();
}

out.println(ret);

byte[] bytes = new sun.misc.BASE64Decoder().decodeBuffer(ret);    
java.io.ByteArrayInputStream  inStream
=new java.io.ByteArrayInputStream(bytes);
byte[]  buffer =new  byte[1444];
FileOutputStream fs
=new FileOutputStream( "d:/aaa.doc");
int bytesum=0;
int byteread=0;         
while ((byteread=inStream.read(buffer))!=-1)
  
{     
     bytesum
+=byteread; 
     fs.write(buffer,
0,byteread);
     }
    
%>

 14。把文件编码成base64字符串

<%
     String ret
=new String();
     
byte[] bytes=new byte[1024];
     String aa
="aaaa";
     bytes
=aa.getBytes();
     ret
=new sun.misc.BASE64Encoder().encode(bytes); //具体的编码方法
     bytes = new sun.misc.BASE64Decoder().decodeBuffer(ret);    
     aa
=new String(bytes);
     out.println(aa);
%> 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值