以下方案切实可行~
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进行远程文件的下载,具体实现有很多第三方的包,网络即可。