可以通過帶緩沖的字節輸入輸出流來完成。下面我寫的一個小例子

江油網站建設公司創新互聯,江油網站設計制作,有大型網站制作公司豐富經驗。已為江油上千多家提供企業網站建設服務。企業網站搭建\成都外貿網站建設要多少錢,請找那個售后服務好的江油做網站的公司定做!
import java.io.*;
public class FileTest {
public static void main(String[] args) throws FileNotFoundException {
int i;
String file="e:/電影/123/2012.rmvb";//要復制的文件路徑和名稱
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));//創建一個帶緩沖字節輸入流讀取文件
String fileName="2012.rmvb";//文件名
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("c:/my/"+fileName));//復制目的的路徑
try {
while ((i = bis.read()) != -1) {
bos.write(i);
}
} catch (IOException ex) {
ex.printStackTrace();
}finally{
try {
bis.close();
bos.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
運行正確,求采納
一般都是大尺寸變小尺寸,肯定有損的。
不知道你的無損是什么意思,意思是變小尺寸了還能變大也像以前一樣清晰?
好像有種“矢量圖片”就是可以隨意放大縮小并且無損,缺點就是圖片很占空間。
Java代碼復制文件夾時,則需要利用Flie類在目標文件夾中創建相應的目錄,并且使用遞歸方法,代碼如下:
import?java.io.*;??
/**?
*?復制文件夾或文件夾?
*/??
public?class?CopyDirectory?{??
//?源文件夾???
static?String?url1?=?"F:/photos";??
//?目標文件夾???
static?String?url2?=?"D:/tempPhotos";??
public?static?void?main(String?args[])?throws?IOException?{??
//?創建目標文件夾???
(new?File(url2)).mkdirs();??
//?獲取源文件夾當前下的文件或目錄???
File[]?file?=?(new?File(url1)).listFiles();??
for?(int?i?=?0;?i??file.length;?i++)?{??
if?(file[i].isFile())?{??
//?復制文件???
copyFile(file[i],new?File(url2+file[i].getName()));??
}??
if?(file[i].isDirectory())?{??
//?復制目錄???
String?sourceDir=url1+File.separator+file[i].getName();??
String?targetDir=url2+File.separator+file[i].getName();??
copyDirectiory(sourceDir,?targetDir);??
}??
}??
}??
//?復制文件???
public?static?void?copyFile(File?sourceFile,File?targetFile)???
throws?IOException{??
//?新建文件輸入流并對它進行緩沖???
FileInputStream?input?=?new?FileInputStream(sourceFile);??
BufferedInputStream?inBuff=new?BufferedInputStream(input);??
//?新建文件輸出流并對它進行緩沖???
FileOutputStream?output?=?new?FileOutputStream(targetFile);??
BufferedOutputStream?outBuff=new?BufferedOutputStream(output);??
//?緩沖數組???
byte[]?b?=?new?byte[1024?*?5];??
int?len;??
while?((len?=inBuff.read(b))?!=?-1)?{??
outBuff.write(b,?0,?len);??
}??
//?刷新此緩沖的輸出流???
outBuff.flush();??
//關閉流???
inBuff.close();??
outBuff.close();??
output.close();??
input.close();??
}??
//?復制文件夾???
public?static?void?copyDirectiory(String?sourceDir,?String?targetDir)??
throws?IOException?{??
//?新建目標目錄???
(new?File(targetDir)).mkdirs();??
//?獲取源文件夾當前下的文件或目錄???
File[]?file?=?(new?File(sourceDir)).listFiles();??
for?(int?i?=?0;?i??file.length;?i++)?{??
if?(file[i].isFile())?{??
//?源文件???
File?sourceFile=file[i];??
//?目標文件???
File?targetFile=new?File(new?File(targetDir).getAbsolutePath()+File.separator+file[i].getName());??
copyFile(sourceFile,targetFile);??
}??
if?(file[i].isDirectory())?{??
//?準備復制的源文件夾???
String?dir1=sourceDir?+?"/"?+?file[i].getName();??
//?準備復制的目標文件夾???
String?dir2=targetDir?+?"/"+?file[i].getName();??
copyDirectiory(dir1,?dir2);??
}??
}??
}??
}
這是我們公司基類里的一個方法希望對你有幫助。。/**
* 復制單個文件
* @param oldPath String 原文件路徑 如:c:/fqf.txt
* @param newPath String 復制后路徑 如:f:/fqf.txt
* @return boolean
*/
public void copyFile(String oldPath, String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) { //文件存在時
InputStream inStream = new FileInputStream(oldPath); //讀入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; //字節數 文件大小
// System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}
}
catch (Exception e) {
System.out.println("復制單個文件操作出錯");
e.printStackTrace(); } }
名稱欄目:java復制圖片的代碼 java如何復制一個圖片文檔
網頁地址:http://www.yijiale78.com/article42/dohioec.html
成都網站建設公司_創新互聯,為您提供網站收錄、網站營銷、小程序開發、標簽優化、網站維護、靜態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯