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<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();
%>
新建目錄<%@ 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();
%>
相關文章
- c# 對檔案的各種操作C#
- PHP 檔案操作的各種姿勢PHP
- windows的各種副檔名詳解Windows
- 詳解熬夜對人體的各種危害
- 實驗 詳解Docker的各種操作小實驗Docker
- Java中對檔案的操作 (轉)Java
- Scala檔案操作詳解
- Java對檔案的操作及UDP,TCPJavaUDPTCP
- C++ 檔案操作詳解C++
- java class檔案詳解Java
- Java Class檔案詳解Java
- Android 的各種 Drawable 詳解Android
- [Java]根據檔案取得Mime Type的各種方法(轉)Java
- redis配置檔案中各引數詳解Redis
- JavaScript 檔案操作方法詳解JavaScript
- 各種不同檔案系統的比較,資訊很詳細
- java IO流 對檔案操作的程式碼集合Java
- 各種型別檔案頭型別
- Python3 檔案操作詳解Python
- 詳解python檔案讀寫操作Python
- JAVA 操作檔案Java
- java 檔案操作Java
- .Net 對於PDF生成以及各種轉換的操作
- 【簡單易懂】JPA概念解析:CascadeType(各種級聯操作)詳解。
- 各檔案系統對單個檔案大小的限制
- JavaScript 各種遍歷方式詳解JavaScript
- Django model select的各種用法詳解Django
- python對檔案的操作Python
- RMAN中各種檔案的恢復方法
- Oracle 各種檔案丟失的恢復Oracle
- java POI 操作EXCEL小例子+各種屬性JavaExcel
- Java對txt檔案內容的增刪該查操作Java
- MongoDB工具類:java操作對檔案的增刪查改MongoDBJava
- Java如何建立臨時檔案並列印File各種屬性Java
- HBase的JAVA API操作詳解JavaAPI
- JAVA的各種OJava
- django3.1.4從前端接收檔案(各種格式的檔案)Django前端
- Java檔案操作 讀寫操作Java