以下方案切實可行~
import java.io.File;
import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
public class t {
public static void main(String[] args) throws Exception {
final int BUFFER_SIZE = 0x300000;// 緩沖去大小為3M
File f = new File("C:\\Documents and Settings\\XHY\\桌面\\a.txt");
/**
* map(FileChannel.MapMode mode,long position, long size)
* mode - 根據是按只讀、讀取/寫入或專用(寫入時拷貝)來映射文件,分別為 FileChannel.MapMode 類中所定義的 READ_ONLY、READ_WRITE 或 PRIVATE 之一
* position - 文件中的位置,映射區域從此位置開始;必須為非負數
* size - 要映射的區域大小;必須為非負數且不大於 Integer.MAX_VALUE
* 所以若想讀取文件後半部分內容,如例子所寫;若想讀取文本後1/8內容,需要這樣寫map(FileChannel.MapMode.READ_ONLY, f.length()*7/8,f.length()/8)
*/
MappedByteBuffer inputBuffer = new RandomAccessFile(f, "r").getChannel().map(FileChannel.MapMode.READ_ONLY, f.length()/2,f.length()/2);
byte[] dst = new byte[BUFFER_SIZE];// 每次讀出3M的內容
Long start = System.currentTimeMillis();
for (int offset = 0; offset < inputBuffer.capacity(); offset += BUFFER_SIZE) {
if (inputBuffer.capacity() - offset >= BUFFER_SIZE) {
for (int i = 0; i < BUFFER_SIZE; i++)
dst[i] = inputBuffer.get(offset + i);
} else {
for (int i = 0; i < inputBuffer.capacity() - offset; i++)
dst[i] = inputBuffer.get(offset + i);
}
int length = (inputBuffer.capacity()%BUFFER_SIZE==0)?BUFFER_SIZE:inputBuffer.capacity()%BUFFER_SIZE;
// System.out.println(new String(dst,0,length));//new String(dst,0,length)這樣可以取出緩存保存的字元串,可以對其進行操作
}
long end = System.currentTimeMillis();
System.out.println("讀取文件文件一半內容花費:"+(end-start)+"毫秒");
}
}
❷ java 讀取伺服器上的文件
File file = new File(ServletActionContext.getServletContext().getRealPath(「/」),"test.txt");
"/"是web項目的根目錄,然後就和讀本地文件的一樣
❸ java 如何獲取另外一台機器上的文件
另外一台機器的文件要共享才行吧,最直接的其它機器共享後在本地建一個網路映射,就像讀本機的文件一樣
❹ 如何在java中操作映射盤(網路盤)的文件
通過io流讀入,然後寫入response
❺ 怎麼使用Java完成下載excel文件,伺服器上excel文件是直接存在的而不是導出的(必須使用action)
寫個文件抄專門提供下載文件也可以,但那樣對於你這種情況明顯多餘了,把伺服器端Excel文件的MIME類型映射信息改成application/octet-stream即可。這個映射可以在web.xml中定義。
❻ java在伺服器上獲取本項目文件問題
request.getSession().getServletContext().getRealPath("/")+"img/hswatermark.png";
-------------------------------------------------------------------------------------------
❼ [java]如何在windows下讀取遠程的linux下面的文件
這個功能和系統無關……
http ftp 都行,直接網路映射也可以,但是需要對方的 Linux 支持。
所以一般還是 http/ftp 方便很多。
-----------
update:只要兩邊都支持的文件傳送協議就行了。
❽ Java怎麼讀取遠程伺服器上的共享文件夾
ava獲取遠程文件的方式在我的開發過程中使用過兩種
1。通過http請求進行靜態資源,首先確定文件的URL地址,然後通過URLConnection進行連接,然後通過讀取連接中返回的InputStream,再通過文件輸出流FileOutputStream進行存儲(下載)。
2.通過FTP或SFTP進行遠程文件的下載,具體實現有很多第三方的包,網路即可。