導航:首頁 > 編程語言 > fileurljava

fileurljava

發布時間:2022-11-28 13:12:55

1. java.io.File.File 能否按照一個URL創建文件

  1. 首先,File是可以用url形式的。

    一般File file = new File(url);

    或者File file = new URL(url).getFile();

  2. 用Url和直接使用本地文件有些地方要注意的,

    a.你要寫對Url,看你的url感覺就不對,你把這個Url粘到瀏覽器看有沒有下載就知道對不對了

    b.或許你要用的文件不是http方式提供的,那就應該寫成\192.168.1.2 mp.txt的方式,你可以在資源管理器(文件系統)的地址那粘上這個地址(去掉文件名的路徑)看能不能找到文件


2. 用Java實現獲取文件類型的方法。

主要以下幾種方法:

這個MimetypesFileMap類會映射出一個file的Mime Type,這些Mime Type類型是在activation.jar包裡面的資源文件中定義的

importjavax.activation.MimetypesFileTypeMap;
importjava.io.File;

classGetMimeType{
publicstaticvoidmain(Stringargs[]){
Filef=newFile("test.gif");
System.out.println("MimeTypeof"+f.getName()+"is"+
newMimetypesFileTypeMap().getContentType(f));
//expectedoutput:
//"MimeTypeoftest.gifisimage/gif"
}
}

使用 java.net.URL
警告:這個方法非常慢
與上面所說的匹配後綴名類似。後綴名和mime-type的映射關系被定義在[jre_home]libcontent-types.properties這個文件中

importjava.net.*;

publicclassFileUtils{
publicstaticStringgetMimeType(StringfileUrl)
throwsjava.io.IOException,MalformedURLException
{
Stringtype=null;
URLu=newURL(fileUrl);
URLConnectionuc=null;
uc=u.openConnection();
type=uc.getContentType();
returntype;
}

publicstaticvoidmain(Stringargs[])throwsException{
System.out.println(FileUtils.getMimeType("file://c:/temp/test.TXT"));
//output:text/plain
}
}

還有一種方式:就是取文件名最後一個「.」後的內容,通過人來判斷如

String fileName = "aaa.txt";

String fileType =「txt」//通過方法取出方法類型為

String type = "";

if( fileTyep.equals("txt")){

type = "記事本";

}else if(fileTyep.equals("img")){

type = "img圖片";

}。。。。。

3. Java中可以使用URL定位到本地的某個文件嗎

可以的,直接通過URL類實現即可。
舉例:URL fileUrl = new URL("file:///E:/tmp/test.txt");
備註:引入的是「java.net.URL「類。

4. java 怎麼使用遠程 url 創建 file

importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;

/**
*@authorlmq
*
*/
publicclassRemoteFile{

publicstaticvoidmain(String[]args)throwsException{
FileremoteFile=newFile("//192.168.7.146/test/1.txt");//192.168.7.146是對方機器IP,test是對方那個共享文件夾名字,如果沒有共享是訪問不到的
//遠程文件其實主要是地址,地址弄對了就和本地文件沒什麼區別,windows裡面//或者\\開頭就表示這個文件是網路路徑了其實這個地址就像我們再windows裡面,點擊開始
//然後點擊運行,然後輸入\192.168.7.146/test/1.txt訪問遠程文件一樣的

BufferedReaderbr=newBufferedReader(newFileReader(remoteFile));
Stringstr;
while((str=br.readLine())!=null){
System.out.println(str);
}
br.close();
}
}

如果是非共享文件 你只能通過url讀取流來生成了

publicvoiddownUrlTxt(StringfileName,StringfileUrl,StringdownPath){
FilesavePath=newFile(downPath);
if(!savePath.exists()){
savePath.mkdir();
}
String[]urlname=fileUrl.split("/");
intlen=urlname.length-1;
Stringuname=urlname[len];//獲取文件名
try{
Filefile=newFile(savePath+"/"+uname);//創建新文件
if(file!=null&&!file.exists()){
file.createNewFile();
}
OutputStreamoputstream=newFileOutputStream(file);
URLurl=newURL(fileUrl);
HttpURLConnectionuc=(HttpURLConnection)url.openConnection();
uc.setDoInput(true);//設置是否要從URL連接讀取數據,默認為true
uc.connect();
InputStreamiputstream=uc.getInputStream();
System.out.println("filesizeis:"+uc.getContentLength());//列印文件長度
byte[]buffer=newbyte[4*1024];
intbyteRead=-1;
while((byteRead=(iputstream.read(buffer)))!=-1){
oputstream.write(buffer,0,byteRead);
}
oputstream.flush();
iputstream.close();
oputstream.close();
}catch(Exceptione){
System.out.println("讀取失敗!");
e.printStackTrace();
}
System.out.println("生成文件路徑:"+downPath+fileName);
}

5. java中url轉file的問題


publicFile(URIuri)
通過將給定的file:URI轉換為一個抽象路徑名來創建一個新的File實例。
file:URI的具體形式與系統有關,因此,由此構造方法執行的轉換也與系統有關。
對於某個給定抽象路徑名f,可以保證:
newFile(f.toURI()).equals(f.getAbsoluteFile())只要原始抽象路徑名、URI
和新抽象路徑名都是在同一Java虛擬機(或者它的不同調用)中創建的。但是,當在某一操作系統上的虛擬機中創建的file:URI
在不同操作系統上的虛擬機中被轉換為抽象路徑名時,這種關系通常是不成立的。
參數:
uri-一個絕對分層URI,由一個等於"file"的scheme、非空的path
組件,以及未定義的authority、query和fragment組件組成

6. java中如何實現URL類

java中實現URL類,可以使用java工具類中的URL的類,實例如下:

importjava.io.*;
importjava.net.*;
publicclassURLTest
{
publicstaticvoidmain(String[]args)
{
try
{
URLurl=newURL("http://sports.163.com:80/nba/");//創建資源類型
Stringprotocol=url.getProtocol();//獲取資源類型
Stringhost=url.getHost();//獲取域名
intport=url.getPort();//獲取埠
Stringfile=url.getFile();//獲取路徑
System.out.println("url地址的資源類型為:"+protocol+"域名為:"+host+"埠為:"+port+"路徑為:"+file);
InputStreamis=url.openStream();//獲取頁面信息流
BufferedReaderbfr=newBufferedReader(newInputStreamReader(is));//封裝成字元流
Stringlen;
while((len=bfr.readLine())!=null)
{
System.out.println(len);
}
bfr.close();
is.close();
}
catch(MalformedURLExceptione)
{
System.out.println("創建URL對象發生異常");
}
catch(IOExceptione)
{
System.out.println("發生IO操作異常");
}
}
}

7. 我有一段java http下載的代碼,但是我很多地方讀不懂,幫我謝謝注釋

package API;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLDecoder;
import Get.Other_API.*;
public class DownFile implements Runnable
{

private String LOCAL_PATH="d:/";
private String Down_Path=null;
//下面兩個是Down_Path的get和set的方法
public String getDown_Path() { return Down_Path;}
public void setDown_Path(String downPath) {Down_Path=downPath;}
public String getPath() { return LOCAL_PATH; }
public void setPath(String Path) {LOCAL_PATH=Path;}

public void DownNow()
{
//待下載文件地址
String fileUrl=getDown_Path();
InputStream in=null;
OutputStream out=null;
HttpURLConnection conn=null;
String fileName=null;
int count=0;
int finished=0;
int _temp=0;
try
{
//初始化連接
URL url=new URL(fileUrl);//將String類型的地址變為url對象
conn = (HttpURLConnection) url.openConnection();//開啟連接
conn.setDoInput(true);//必要的,開啟輸入輸出的設置
conn.setDoOutput(true);
//獲取文件名
String disposition=conn.getHeaderField("Content-Disposition");
if(disposition!=null&&!"".equals(disposition))
{
//從頭中獲取文件名
fileName=disposition.split(";")[1].split("=")[1].replaceAll("\"","");
}
else
{
//從地址中獲取文件名
fileName=fileUrl.substring(fileUrl.lastIndexOf("/")+1);
}
if(fileName!=null&&!"".equals(fileName))
{
//文件名解碼
fileName=URLDecoder.decode(fileName, "utf-8");
}
else
{
System.out.println("Error");
//如果無法獲取文件名,則隨機生成一個
//fileName="file_"+(int)(Math.random()*10);
}
//讀取數據
if(conn.getResponseCode()==HttpURLConnection.HTTP_OK)
{
//這種方法比較常用,得記住
byte[] buffer=new byte[2048];
in = conn.getInputStream();//獲取文本的輸入流
out=new FileOutputStream(new File(LOCAL_PATH,fileName));//確定輸出的地方
int size=conn.getContentLength();
while((count=in.read(buffer))!=-1)//不斷循環,每次讀取2048比特的數據
{
if(count!=0)
{
out.write(buffer,0,count);//將count大小的數據寫進去
finished+=count;//結尾的寫入的位置改變,為下次寫入做准備
if(_temp%500==0)
{
System.out.printf("下載已完成---->%1$.2f%%\n",(double)finished/size*100);//動態輸出下載的進度
_temp=0;
}
_temp++;
}
else
{
break;
}
}
}
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
out.close();//關閉輸出流
in.close();//關閉輸入流
conn.disconnect();//關閉連接,有打開就有關閉
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
//因為該類實現了Runnable介面,所以得實現這個run方法
@Override
public void run() {
// TODO Auto-generated method stub
DownNow();//調用上面的DownNow方法
}
}

8. java獲取伺服器文件,怎樣用url返回

下面提供二種方法會使用java發送url請求,並獲取伺服器返回的值

第一種方法:
代碼如下:

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.util.EntityUtils;

(StringurlStr,Stringparam1,Stringparam2)throwsException{
StringtempStr=null;
HttpClienthttpclient=newDefaultHttpClient();
Propertiesproperties=newProperties();
HttpEntityentity=null;
StringxmlContent="";
try
{

//設置超時時間
httpclient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,20000);
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,20000);

//封裝需要傳遞的參數
List<NameValuePair>nvps=newArrayList<NameValuePair>();
nvps.add(newBasicNameValuePair("mainMemoCode",strmainMemoCode));
nvps.add(newBasicNameValuePair("recordPassWord",strrecordPassWord));
//客戶端的請求方法類型
HttpPosthttpPost=newHttpPost(urlStr);
httpPost.setEntity(newUrlEncodedFormEntity(nvps,"GBK"));
HttpResponseresponse=httpclient.execute(httpPost);

//獲取伺服器返回Http的Content-Type的值
tempStr=response.getHeaders("Content-Type")[0].getValue().toString();

//獲取伺服器返回頁面的值
entity=response.getEntity();
xmlContent=EntityUtils.toString(entity);
Stringstrmessage=null;
System.out.println(xmlContent);
System.out.println(response.getHeaders("Content-Type")[0].getValue().toString());
httpPost.abort();

}
catch(SocketTimeoutExceptione)
{
}
catch(Exceptionex)
{
ex.printStackTrace();
}
finally{
httpclient.getConnectionManager().shutdown();
}
第二種方法:

代碼如下:


(StringurlStr,Stringparam1,Stringparam2)throwsException{

HttpURLConnectionurl_con=null;
try{
URLurl=newURL(urlStr);
StringBufferbankXmlBuffer=newStringBuffer();
//創建URL連接,提交到數據,獲取返回結果
HttpURLConnectionconnection=(HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("User-Agent","directclient");

PrintWriterout=newPrintWriter(newOutputStreamWriter(connection.getOutputStream(),"GBK"));
out.println(param);
out.close();
BufferedReaderin=newBufferedReader(newInputStreamReader(connection
.getInputStream(),"GBK"));

StringinputLine;

while((inputLine=in.readLine())!=null){
bankXmlBuffer.append(inputLine);
}
in.close();
tempStr=bankXmlBuffer.toString();
}
catch(Exceptione)
{
System.out.println("發送GET請求出現異常!"+e);
e.printStackTrace();

}finally{
if(url_con!=null)
url_con.disconnect();
}

returntmpeStr;
}

總結:多練習代碼,熟練之後才能更快速的去了解代碼的學習的方法。多去獲取一些思維方面的書籍可以看看。

9. 如何用java程序實現上傳文件到指定的URL地址

參考代碼如下:
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()) {
// 復制文件
File(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();
Directiory(sourceDir, targetDir);
}
}
}
// 復制文件
public static void File(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 Directiory(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());
File(sourceFile,targetFile);
}
if (file[i].isDirectory()) {
// 准備復制的源文件夾
String dir1=sourceDir + "/" + file[i].getName();
// 准備復制的目標文件夾
String dir2=targetDir + "/"+ file[i].getName();
Directiory(dir1, dir2);
}
}
}
}

閱讀全文

與fileurljava相關的資料

熱點內容
yy寫的很詳細的小說 瀏覽:128
求個在線觀看的中文字幕 瀏覽:436
四台伺服器怎麼改成host 瀏覽:784
馬尾電影院今日影訊 瀏覽:815
老濕機免費看片網站 瀏覽:914
ck影院 瀏覽:942
ubuntuphpfpm安裝 瀏覽:414
末世之一女多男 瀏覽:178
電腦上如何下載稅務app 瀏覽:528
s曲線單片機 瀏覽:664
配音秀app如何自動取消續費功能 瀏覽:755
程序員深山養雞 瀏覽:825
類似渣夫的百惠媳的小說 瀏覽:502
javaforever 瀏覽:637
女主叫桃子的微電影 瀏覽:449
藍光超清1080p影視 瀏覽:296
男變女懷孕並生孩子的小說 瀏覽:344
安卓怎麼玩出蘋果的軟體 瀏覽:92
除了80以外還有啥看電影 瀏覽:369
加密分享可以採用的演算法 瀏覽:686