java程序,服务器读取用户本地文件

需要做一个读取excle表格内容实现查询,可不可以不上传到服务器,直接读取用户本地文件呢。

6个回答

jxl java excel api 我没用过,你可以看看去

Java貌似做不到吧。

bs系统不可以,cs的可以

直接不行,除非用户上传,或者你用C++去实现可以。

我做过导入功能,服务器是读不到客户端本地文件的,所以要先上传文件到服务器,再通过服务器读文件,读完,删除!

u014266877
Java_攻城狮 不懂的可以Q我 294706865
3 年多之前 回复

目前只做到了打开Excel,获取内容暂时还没解决,来年再试试,谢谢大家了图片说明图片说明图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

关于spark离线程序读写本地文件的问题

我目前在学着写spark离线程序,用Java写的 目前我要做的是:在java代码里读取服务器上的/root/config.properties配置文件, 然后我处理完之后会生成一个文件file.txt,我希望将这个file.txt也放到该服务器的特定目录下。 目前我读取配置文件的做法是:先将config.properties上传到hdfs, 然后java代码中写prop.load("hdfs:///root/config.properties"); 这样是可以达到效果的,但事实上我不可能每次都手动将配置文件放一下hdfs。 生成的文件在哪目前我还没测试。。。 请大佬指点下这个需要怎么做。包括java代码里和sh脚本里。谢谢。 大佬给代码的时候请详细点,因为不会,能顺带加点注释就最好了。 我测试能用的话保证立马采纳。 环境是jdk1.8和spark2.2,linux系统

java 如何在服务器上直接打开存在本地的文件。

如何在服务器上直接打开存在本地的文件,文件类型不限。文件只在自己的电脑上,不在服务器上,在网页上面弄个链接或button,直接点击就可打开本地文件。不用上传与下载。 如下几种方式只支持自己的电脑上,不知道有哪们高手能有什么好的方法在不同电脑上时打开自己电脑中的文件 //方法一 Desktop.getDesktop().open(new File("c:\\SZP5.sql")); //方法二 String filename = "c:\\SZP2.sql"; File f = new File(filename); Runtime runtime = Runtime.getRuntime(); //System.out.println(f.getAbsolutePath()); runtime.exec("rundll32 url.dll FileProtocolHandler "+f.getAbsolutePath()); //方法三 Runtime r=Runtime.getRuntime(); String[] cmd = new String[3]; cmd[0]="cmd"; cmd[1]="/c"; cmd[2]="start c:\\kenward.msg"; r.exec(cmd);

怎么用java实现定时读取文件

用timer类实现定时,我不知道在run()方法中怎么实现读取文件。

java项目中访问.txt文件,本地项目启动之后可以访问,为什么部署到服务器上之后就访问不了了?

现在做一个java项目,项目根目录下有一个.txt的文件,我项目本地启动之后通过浏览器 域名/文件名.txt就可以访问该文件。(域名是用软件内网穿透了,因为是三方微信登录,需要授权域名) 重点来了::::但是为什么我项目部署到服务器之后,我在访问 http://域名/文件名.txt就404了啊。搞了一下午。我的天!!!! 求大神帮忙。。 下附文件路径图。![图片说明](https://img-ask.csdn.net/upload/201708/28/1503917448_56840.png)

javaWeb项目本地的文件下载没问题,部署到服务器上就无法文件下载

下载文件的代码如下: 项目在本地调试的时候,是可以正常下载本地磁盘的文件的,然后我部署到一台远程机器上,所要下载的文件能够得到他的路径,但是也不报错就是页面没有下载到文件,这是为什么? 备注:1.我在浏览器去访问那个文件的路径,404访问不到,虽然在WEB-INF下面放着。 访问路径:http://10.10.3.149:8080/alitm/WEB-INF/upload/d9209cf6856e427495dd78e4cf3d24d3_result.csv [b]package com.ecsemir.utils; import com.ecsemir.entity.ExceptUpload; import org.springframework.context.annotation.Scope; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by zhuxiaofan01 on 2017/11/7. * 文件上传 */ @Scope("prototype") public class DownloadFile { public static void getDownloadFile(HttpServletRequest request, HttpServletResponse response,ExceptUpload exceptUpload) throws IOException, ServletException { //得到要下载的文件路径 String fpath = exceptUpload.getPath_resultCsv(); String filepath = request.getSession().getServletContext().getRealPath(fpath); //获取时间 String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); String time=simpleDateFormat.format(new Date()); //得到文件名 int index1=filepath.lastIndexOf("_"); int index2=filepath.lastIndexOf("."); String fileName=time+filepath.substring(index1+1,index2)+".csv"; System.out.println("---------------------------fileName:"+fileName+"-----------------"+filepath); fileName = new String(fileName.getBytes("iso8859-1"), "UTF-8"); //得到要下载的文件 File file = new File(filepath); //如果文件不存在 if (!file.exists()) { request.setAttribute("message", "您要下载的资源已被删除!!"); request.getRequestDispatcher("/except/downloadlist.jsp").forward(request, response); return; } //设置响应头,控制浏览器下载该文件 response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); //读取要下载的文件,保存到文件输入流 FileInputStream in = new FileInputStream(file); //创建输出流 OutputStream out = response.getOutputStream(); //创建缓冲区 byte buffer[] = new byte[1024]; int len = 0; //循环将输入流中的内容读取到缓冲区当中 while ((len = in.read(buffer)) > 0) { //输出缓冲区的内容到浏览器,实现文件下载 out.write(buffer, 0, len); } //关闭文件输入流 in.close(); //关闭输出流 out.close(); } }[/b]

java程序部署在一台服务器,图片存在另一台服务器

java程序部署在一台服务器,图片存在另一台服务器,用户如何通过访问程序这台服务器拿到另外一台服务器上的图片,还是说用户有方法可以直接访问图片服务器

java关于从linux服务器里通过FTPClienet下载文件及文件夹的方法

新人菜鸟一枚,不会下载文件夹以及文件夹里的内容,求指导!现在自己只做到了文件的下载,但是文件夹不会,配置文件里写的是访问ftp服务器的ip,端口,用户名密码以及服务器的路径和下载后存放的位置路径。 import java.io.IOException; import java.net.SocketException; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; import org.apache.log4j.Logger; public class FTPUtil { private static Logger logger = Logger.getLogger(FTPUtil.class); /** * 获取FTPClient对象 * * @param ftpHost * FTP主机服务器 * @param ftpPassword * FTP 登录密码 * @param ftpUserName * FTP登录用户名 * @param ftpPort * FTP端口 默认为21 * @return */ public static FTPClient getFTPClient(String ftpHost, String ftpPassword, String ftpUserName, int ftpPort) { FTPClient ftpClient = null; try { ftpClient = new FTPClient(); ftpClient.connect(ftpHost,ftpPort);// 连接FTP服务器 ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器 if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) { // ftpClient.getReplyCode()返回的内容是答复的客户端代码 //logger.info("未连接到FTP,用户名或密码错误。"); System.out.println("未连接到FTP,用户名或密码错误。"); ftpClient.disconnect(); } else { System.out.println("FTP连接成功。"); } } catch (SocketException e) { e.printStackTrace(); System.out.println("FTP的IP地址可能错误,请正确配置。"); } catch (IOException e) { e.printStackTrace(); System.out.println("FTP的端口错误,请正确配置。"); } return ftpClient; } } ---------------------------------------------------------------- import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.SocketException; import java.util.Properties; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPClientConfig; import org.apache.commons.net.ftp.FTPReply; public class DownloadFileFromRmote { private static boolean downloadFileFromRmote(String ftpHost, Integer ftpPort, String ftpUserName, String ftpPassword, String ftpPath, String fileName, String writeTempFielPath) { boolean flag = false; FTPClient ftpClient = new FTPClient(); FileOutputStream fos = null; try { ftpClient.connect(ftpHost, ftpPort); ftpClient.login(ftpUserName, ftpPassword); int reply; reply = ftpClient.getReplyCode(); // 230 if (!FTPReply.isPositiveCompletion(reply)) { ftpClient.disconnect(); return flag; } File localFile = new File(writeTempFielPath + File.separator + fileName);// G:\测试路径\1.png if (!localFile.exists()) { localFile.createNewFile(); } ftpClient.setBufferSize(1024); ftpClient.setControlEncoding("UTF-8"); // 设置文件类型(二进制) ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); fos = new FileOutputStream(localFile); System.out.println(fos); ftpClient.retrieveFile(fileName, fos); flag = true; } catch (SocketException e) { System.out.println("连接失败!"); e.printStackTrace(); } catch (IOException e) { System.out.println("下载失败!"); e.printStackTrace(); } finally { try { if (fos != null) { fos.close(); } if (ftpClient.isConnected()) { ftpClient.disconnect(); } } catch (IOException e) { System.out.println("下载失败!"); e.printStackTrace(); } } return flag; } public static void main(String[] args) { int ftpPort = 0; String ftpHost = ""; String ftpUserName = ""; String ftpPassword = ""; String ftpPath = "";// FTP路径 String fileName = ""; String writeTempFielPath = ""; try { InputStream in = FTPUtil.class.getClassLoader() .getResourceAsStream("env.properties"); if (in == null) { System.out.println("配置文件env.properties读取失败"); } else { Properties properties = new Properties(); properties.load(in); ftpUserName = properties.getProperty("ftpUserName"); // 从属性文件里获取用户密码 ftpPassword = properties.getProperty("ftpPassword"); ftpHost = properties.getProperty("ftpHost"); ftpPort = Integer.valueOf(properties.getProperty("ftpPort")) .intValue(); // 端口 ftpPath = properties.getProperty("ftpPath"); fileName = properties.getProperty("fileName"); writeTempFielPath = properties.getProperty("writeTempFielPath"); System.out.println(ftpUserName + "" + ftpPassword + "" + ftpHost + "" + ftpPort + "" + ftpPort + "" + ftpPath); downloadFileFromRmote(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpPath, fileName, writeTempFielPath); } } catch (Exception e) { e.printStackTrace(); } } }

JAVA HTTP协议GET请求方式如何接收服务器返回来的文件并放在某一目录下?

JAVA HTTP协议GET请求方式向服务器发送了一个请求后服务器返回了一个文件想,问一下如何接收服务器返回来的文件并放在某一目录(例如/sdcard)下? 因为看了网上的例子都基本都是同一个,而且都是把传过来的文件重新命名,这里想问一下服务器上的文件本来就是有名字的吧,如何把传过来的文件直接接收不自己定义文件名呢?这个应该可以实现吧! 要怎么做呢,求个demo~!~~

java操作本地excel文件的问题

需求如下,客户先将需要记录的项目做成excel表保存到本地盘上,然后程序根据需求打开里面的excel表,进行编辑,编辑完成后点保存将文件上传到服务器,请问该如何实现?

java window获取文件路径

File f = new File("D:\\text.txt"); 如果文件是在d盘下的text.txt,这样写为什么会提示找不到文件

Java读取NAS存储速度太慢

有一台NAS存储设备,将其挂载到Linux文件系统。采用CP命令将一些文件从NAS目录拷贝到本地目录的速速很快,但是自己编写JAVA程序读取的速度很慢,希望高手能够给予解答

[java]为什么我IO读写文件的速度逐渐变慢,刚开始特别快

标题说的不太详细 就是我的程序不断的往一个*.dat文件中追加手机号,一行一个,刚开始第一次运行的时候,没有文件,创建然后写 速度都很快,当我的文件越来越大,其实也不大,就100行左右,我要继续追加,然而速度就变得越来越慢 刚开始写200多个文件一共30-40ms,现在是300-500ms 这是为什么? 参考代码 监控中发现就这俩方法耗时间 ``` void pickOne(File f, String fingerprint) { long ts = System.currentTimeMillis(); try (FileInputStream fis = new FileInputStream(f)) { String name = f.getName().split("\\.")[0]; PerfLogging.info("Loading ..... " + fingerprint + "/" + name + " from " + f.getAbsolutePath() + " ..... "); BufferedReader buf = new BufferedReader(new InputStreamReader(fis)); String line = null; while ((line = buf.readLine()) != null) { addPhone(name, line); } buf.close(); ts = System.currentTimeMillis() - ts; PerfLogging.info("time elapsed " + ts + "ms"); } catch (Exception e) { e.printStackTrace(); } } public void dump(String basedir) { File dir = new File(basedir, this.preHash); for (Entry<String, Set<String>> en : this.hTab.entrySet()) { String pre2 = en.getKey(); try (FileOutputStream fos = new FileOutputStream(new File(dir, pre2 + ".dat"))) { for (String s : en.getValue()) { fos.write((s + "\n").getBytes()); } } catch (Exception e) { e.printStackTrace(); } } } ``` 这个代码不是我写的,我查到这个 java1.7特性,叫做try-with-resource,实现了AutoCloseable接口的实例可以放在try(...)中在离开try块时将自动调用close()方法。该方法调用可以看做在finally块中,所以资源的释放一定会执行,不过能不能成功释放还是得看close方法是否正常返回。 还有,我的服务器有40个G的内存,即使开给它还是很慢 我读取的是*.dat文件,不是二进制文件,可以理解成是txt类型的文件 我测试的时候,在第一次运行的时候,特别快,十分之一 但是多运行几次后,速度直线下降

这是一个java 的文件监控目录下的变化,发生变化进行处理。

public void run() { WatchService watchService; try { watchService = FileSystems.getDefault().newWatchService(); Paths.get(watchedPath).register(watchService, StandardWatchEventKinds.ENTRY_CREATE); while(true) { WatchKey key=watchService.take(); for(WatchEvent<?> event:key.pollEvents()) { WatchEvent<Path> ev = cast(event); Path name = ev.context(); if(ftpUser == null || ftpUser.equals("")){ //本地local FtpUtil.copyFile(name.toFile(),localPath,watchedPath); }else{ // FtpUtil.uploadFile(name.toFile(), localPath, "ftp.properties",watchedPath); //ftp FtpUtil.uploadFile(name.toFile(), localPath, ftpUser,watchedPath); //ftp } } boolean reset = key.reset(); if (!reset) break; } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } /** * 复制单个文件 * @param oldPath String 原文件路径 如:c:/fqf.txt * @param newPath String 复制后路径 如:f:/fqf.txt * @return boolean */ public static void copyFile(File newFile, String newPath,String oldPath) { InputStream inStream = null; FileOutputStream fs = null; try { int bytesum = 0; int byteread = 0; String filePath = oldPath +"\\"+newFile; File oldfile = new File(filePath); if (oldfile.exists()) { // 文件存在时 inStream = new FileInputStream(filePath); // 读入原文件 fs = new FileOutputStream(newPath+"\\"+newFile); byte[] buffer = new byte[1444]; int length; while ((byteread = inStream.read(buffer)) != -1) { bytesum += byteread; // 字节数 文件大小 fs.write(buffer, 0, byteread); } System.out.println("aaa"); } } catch (Exception e) { System.out.println("复制单个文件操作出错"); e.printStackTrace(); }finally{ try { if(null!=fs){ fs.close(); } if(null!=inStream){ inStream.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("bbb"); } } java.io.FileNotFoundException: D:\text1\新建文本文档 (2).txt (另一个程序正在使用此文件,进程无法访问。) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:138) at java.io.FileInputStream.<init>(FileInputStream.java:97) at com.rihang.util.FtpUtil.copyFile(FtpUtil.java:143) at com.rihang.publicserviceproduct.FileWatcherThread.run(FileWatcherThread.java:68) 上边是代码和异常,我要做的是,当监控的目录下多了一个文件的时候就将该文件copy 到其他目录下。现在第一次没问题。第二次在放如监控目录下一个文件时就提示这个异常。但是我如果在inStream = new FileInputStream(filePath); 这行打个断点停顿下就没这个问题了。在线求解。

java程序怎么读取word文档中的图片,然后把图片保存到其他路径上

java程序怎么读取word文档中的图片,然后把图片保存到其他路径上,求指教,就代码,急等。。。。

【hive问题】具体怎么使用load加载本地txt文件到表里面呢

那个公司给的hive连接地址,我在我电脑上用jdbc连接的hive,我目前有一个map中有很多条数据,要往hive里面存,我发现用insert into插500条数据,插了10分钟,好慢啊,我想试一试load批量加载,然后我找到了这个语句 load data local inpath 'wyp.txt' into table wyp; 然后那么问题来了,请问使用这个load,本地文件必须和hive在一个服务器上吗,我用的centos系统,不管我把txt文件放在那里,执行语句都是找不到文件,是因为不在一个服务器上吗

如何用jsp实现将文件上传至Tomcat服务器上,并可以下载

在做一个资源管理系统,现在需要实现将文件上传至Tomcat服务器下的并在另外的页面可以实现下载的功能,除了知道这是需要上传至Tomcat服务器下之外,什么都不会,不知道怎么实现,也不知道要怎么写代码,希望各位路过的大侠指教!!!还有一个问题就是,要怎么实现已上传文件的预览呢?原谅我是个技术渣吧...感谢大家!!!

java程序编码问题

我在本地开发的程序,从本地文件中读取中文后,入库没有编码问题;但是我,把这个程序传到服务器上,我们的服务器是Linux的系统,文件系统是utf-8的。同样的程序,在Linux上运行读取文件里的中文,入库就是乱码了;在服务器上,如果我将中文直接写在程序里面入库,没有乱码问题。感觉应该是编码转换的事儿,我试了如下几种办法: 1、String sql = new String(sql.getBytes("GBK"),"UTF-8"); 2、String sql = new String(sql.getBytes("UTF-8"),"GBK); 3、String sql = new String(sql.getBytes(),"GBK"); 4、Sttring sql = new String(sql.getBytes(),"UTF-8"); 好像都不好使。再说明一下,我上传上去的文件是GBK编码的,后来又上传了一个UTF-8编码的文件上去,也都不好使,不知道怎么办了,向高人求教。

在java中使用ffmpeg的问题

我要实现的是微信公众号网页中用户可以把手机录的视频上传到服务器,目前存在的问题是ios的mov格式视频在安卓手机端无法通过video标签播放。 于是我在网上找到可以通过java调用ffmpeg.exe实现转码的方法,但是由于对ffmpeg不熟悉,故而有一些问题不太明白。 1、html5上传文件可以通过二进制流来上传,数据到服务器后写成文件。然而ffmpeg肯定也是需要读取文件然后解码、再编码.....,那么我可以直接调用ffmpeg来接收html5上传过来的二进制流,然后转码吗? 2、有其他的网页插件或者方式来实现手机浏览器播放mov和MP4格式的视频吗?除了flash。

javaweb 如何访问共享文件夹 文件路径怎么写

两个内网服务器 项目部署在服务器A里面 服务器B里面的某个文件夹设置共享 A里面的项目应该如何访问B服务器里面的共享文件呢 路径应该如何写呢?????

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问