精华内容
下载资源
问答
  • 在上传文件,选择文件的时候,往往会遇到路径选择的问题,比如,一般上传的默认路径是 我的文档,而我们恰好需要默认在桌面,那怎么办呢?下面的内容也许会帮到你!首先,看java swing 方面,使用 JFileChooser 如何...

    在上传文件,选择文件的时候,往往会遇到路径选择的问题,比如,一般上传的默认路径是 我的文档,而我们恰好需要默认在桌面,那怎么办呢?

    下面的内容也许会帮到你!

    首先,看java swing 方面,使用 JFileChooser 如何设置

    桌面路径为默认路径:

    int result = 0;

    File file = null;

    String path = null;

    JFileChooser fileChooser = new JFileChooser();

    FileSystemView fsv = FileSystemView.getFileSystemView(); //注意了,这里重要的一句

    System.out.println(fsv.getHomeDirectory()); //得到桌面路径

    fileChooser.setCurrentDirectory(fsv.getHomeDirectory());

    fileChooser.setDialogTitle("请选择要上传的文件...");

    fileChooser.setApproveButtonText("确定");

    fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

    result = fileChooser.showOpenDialog(chatFrame);

    if (JFileChooser.APPROVE_OPTION == result) {

    path=fileChooser.getSelectedFile().getPath();

    System.out.println("path: "+path);

    }

    这是另外一种方法得到桌面路径:

    File desktop = new File(System.getProperty("user.home")+System.getProperty("file.separator")+"桌面");

    filechooser.setCurrentDirectory(desktop);

    我的文档 路径:  fsv.getDefaultDirectory());

    另外,这些都是java里面获得各种目录的方法,可以参考

    红色部分的比较常见~

    user.name 用户的账户名称

    user.home 用户的主目录

    user.dir 用户的当前工作目录

    java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装目录 java.vm.specification.version Java 虚拟机规范版本 java.vm.specification.vendor Java 虚拟机规范供应商 java.vm.specification.name Java 虚拟机规范名称 java.vm.version Java 虚拟机实现版本 java.vm.vendor Java 虚拟机实现供应商 java.vm.name Java 虚拟机实现名称 java.specification.version Java 运行时环境规范版本 java.specification.vendor Java 运行时环境规范供应商 java.specification.name Java 运行时环境规范名称 java.class.version Java 类格式版本号 java.class.path Java 类路径 java.library.path 加载库时搜索的路径列表 java.io.tmpdir 默认的临时文件路径 java.compiler 要使用的 JIT 编译器的名称 java.ext.dirs 一个或多个扩展目录的路径 os.name 操作系统的名称 os.arch 操作系统的架构 os.version 操作系统的版本 file.separator 文件分隔符(在 UNIX 系统中是“/”) path.separator 路径分隔符(在 UNIX 系统中是“:”) line.separator 行分隔符(在 UNIX 系统中是“/n”)

    展开全文
  • publicstaticStringfileUploadReturnPath(Fileuploads,StringuploadsFileName,String...文件上传保存路径StringbasePath=ServletActionContext.getServletContext().getRealP...public static String fileUploadRetu...

    publicstaticStringfileUploadReturnPath(Fileuploads,StringuploadsFileName,Stringmodel){//1.文件上传保存路径StringbasePath=ServletActionContext.getServletContext().getRealP...

    public static String fileUploadReturnPath(File uploads,

    String uploadsFileName, String model) {

    //1.文件上传保存路径

    String basePath = ServletActionContext.getServletContext().getRealPath("/upload");

    //2.按日期创建文件夹

    String datePath = DateUtils.dateToStringByFile(new Date());

    datePath+="/";

    //3.上传文件后缀

    String perfix = uploadsFileName.substring(uploadsFileName.lastIndexOf("."));

    //4.文件名使用UUID保证唯一性

    String fileName = UUID.randomUUID().toString()+perfix;

    //5.如果日期文件夹不存在,创建文件夹

    File dateFile = new File(basePath + datePath + model);

    if (!dateFile.exists()) {

    dateFile.mkdirs();

    }

    //6.文件上传

    File destFile = new File(basePath + datePath + model + "/" + fileName);

    //uploads:源文件 renameTo:剪切至 destFile:目标文件

    uploads.renameTo(destFile);

    return "/upload" + datePath + model + "/" + fileName;

    }

    /**File dateFile1 = new File(basePath + datePath + model);

    dateFile1创建的文件夹路径:D:\apache-tomcat-7.0.70\webapps\elec\upload\2016\07\26用户管理

    我想要[26\用户管理]这样结果.于是修改代码为如下:

    File dateFile2 = new File(basePath + datePath + "/" + model);

    dateFile2的结果://D:\apache-tomcat-7.0.70\webapps\elec\upload\2016\07\26\用户管理

    但是创建的文件夹路径是对的了. 但文件上传功能却不好使了~ 我不知道哪里出了问题.

    试了各种办法,都没用. 只有File dateFile1 = new File(basePath + datePath + model); 这样才好使.

    但文件路径就成了2016\07\26用户管理

    于是我用苯办法,在datePath后面加了一行datePath+="/";

    此时 文件夹的创建路径为//D:\apache-tomcat-7.0.70\webapps\elec\upload\2016\07\26\用户管理

    文件也可以正常上传了.

    求 问题出在哪里

    */

    展开

    展开全文
  • new File(path),这个方法的路径到底在那里取决于调用java命令的起始位置定义在哪里,tomcat/bin下面的catalina.bat调用了java,所以在tomcat下相对起始位置是tomcat/bin,但是eclipse启动时,起始位置 是eclipse的项目...

    几种不太安全的:

    1. new File(path),这个方法的路径到底在那里取决于调用java命令的起始位置定义在哪里,

    tomcat/bin下面的catalina.bat调用了java,所以在tomcat下相对起始位置是tomcat/bin,但是eclipse启动时,起始位置 是eclipse的项目路径。

    2.类.class.getClassLoader().getResource("").getPath()

    如果使用了此方法,这把决定权交给了类加载器,例如tomcat的类加载是非委托机制的,而weblogic的类加载是委托的。大部分情况下是安全的。

    3.类.class.getResource("")

    这是个好方法,但局限性在于如果类文件在jar中的话,那么在打jar包时需要将文件夹一起打进去,否则会返回null,jar文件实际上就是zip文件,zip文件中:文件就是文件,文件夹是文件夹,不是关联在一起的,很多开源的jar包就没有把目录打进去只打了classes文件,虽然你能年到目录层次结构,但是调用类.class.getResource("")会返回null.因为文件的目录结构和文件夹本身是两回事。Java中使用的路径,分为两种:绝对路径和相对路径。归根结底,Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是一些便利方法。不过是API在底层帮助我们构建了绝对路径,从而找到资源的!

    在开发Web方面的应用时, 经常需要获取服务器中当前WebRoot的物理路径。

    如果是Servlet , Action , Controller, 或者Filter , Listener , 拦截器等相关类时, 我们只需要获得ServletContext, 然后通过ServletContext.getRealPath("/")来获取当前应用在服务器上的物理地址。

    如果在类中取不到ServletContext时,有两种方式可以做到:

    1)利用Java的类加载机制:调用 XXX.class.getClassLoader().getResource(""); 方法来获取到ClassPath , 然后处理获得WebRoot目录。

    这种方式只能是该class在WebRoot/WEB-INF/classes下才能生效, 如果该class被打包到一个jar文件中, 则该方法失效。这时就应该用下面一种方式。

    2)spring框架的思路,在WEB-INF/web.xml中,创建一个webAppRootKey的param,指定一个值(默认为webapp.root)作为键值,然后通过Listener, 或者Filter,或者Servlet 执行String webAppRootKey = getServletContext().getRealPath("/"); 并将webAppRootKey对应的webapp.root 分别作为Key,Value写到System Properties系统属性中。之后在程序中通过System.getProperty("webapp.root")来获得WebRoot的物理路径。

    根据第二种的思路,我们还可以再扩展一下。不过对于在部署在一台服务器中的应用来说,若还不是你所需请再往下看。

    下面是一些得到classpath和当前类的绝对路径的一些方法。你可使用其中的一些方法来得到你需要的资源的绝对路径:

    1.DebitNoteAction.class.getResource("")

    得到的是当前类FileTest.class文件的URI目录。不包括自己!

    如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/

    atacarnet/src/com/evi/modules/atacarnet/action/

    2.DebitNoteAction.class.getResource("/")

    得到的是当前的classpath的绝对URI路径。

    如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/

    3.Thread.currentThread().getContextClassLoader().getResource("")

    得到的也是当前ClassPath的绝对URI路径

    如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/

    推荐使用该方法获取。

    4.DebitNoteAction.class.getClassLoader().getResource("") 或ClassLoader.getSystemResource("")

    得到的也是当前ClassPath的绝对URI路径。

    如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/

    5.取得服务器相对路径

    System.getProperty("user.dir")

    例如:E:\apache-tomcat-5.5.16\apache-tomcat-5.5.16\bin

    6.取得项目中的绝对路径

    一般用request.getRealPath("/")或request.getRealPath("/config/")

    但现在不提倡使用request.getRealPath("/")了,大家可试用ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。

    要取得src的文件非常容易,因为src是默认的相对目录,比如你说要取得src下com目录的test.java文件,你只需要这样就够了

    File f = new File(com/test.java);

    但如果我要取得不在src目录或者WebRoot目录下的文件呢,而是要从src或者WebRoot同级的目录中取呢,比如说doc吧。

    我的硬方法是这样实现的:

    String path = this.getServletContext().getRealPath("/");

    Properties p = new Properties();

    p.load(new FileInputStream(new File(path.substring(0,(path.lastIndexOf("\\WebRoot") + 1)) + "doc/db.properties")));

    System.out.println(p.getProperty("driverName"));

    -------------------------------

    另:Request中getContextPath、getServletPath、getRequestURI、getRequestURL、getRealPath的区别

    假定你的web application 名称为news,你在浏览器中输入请求路径:http://localhost:8080/news/main/list.jsp

    则执行下面向行代码后打印出如下结果:

    1、 System.out.println(request.getContextPath());

    打印结果:/news

    2、System.out.println(request.getServletPath());

    打印结果:/main/list.jsp

    3、 System.out.println(request.getRequestURI());

    打印结果:/news/main/list.jsp

    4、System.out.println(request.getRequestURL());

    打印结果:http://localhost:8080/news/main/list.jsp

    5、 System.out.println(request.getRealPath("/"));

    打印结果:F:\Tomcat 6.0\webapps\news\test

    展开全文
  • Java修改上传文件路径问题关注:285答案:2手机版解决时间 2021-01-17 18:17已解决2021-01-17 10:10imageFileName = new Date().getTime() + getExtention(fileName);File imageFile = new File(ServletActionContext....

    Java修改上传文件路径问题

    关注:285  答案:2  手机版

    解决时间 2021-01-17 18:17

    已解决

    2021-01-17 10:10

    imageFileName = new Date().getTime() + getExtention(fileName);

    File imageFile = new File(ServletActionContext.getServletContext()

    .getRealPath("images/annouce") + "/" + imageFileName);

    System.out.println("地址"+imageFileName);

    copy(myFile, imageFile);

    上面一段代码是把文件放在服务器的项目的images/annouce/下面

    服务器项目路径D:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\mojie

    现在想把文件放在服务器下面webapps\images的文件夹 里面 ,该怎么修改

    最佳答案

    2021-01-17 11:38

    删掉这个/annouce

    全部回答

    1楼

    2021-01-17 12:25

    通过 ”new fileinputstream(文件路径)“的形式进行上传即可。举例:

    public static string encodeaesfileuploadbyftp(string plainfilepath, string filename, string date,string filepath) throws exception {

    fileinputstream fis = null;

    bytearrayoutputstream bos = null;

    ftpclient ftpclient = new ftpclient();

    string bl = "false";

    try {

    fis = new fileinputstream(plainfilepath);

    bos = new bytearrayoutputstream(fis.available());

    byte[] buffer = new byte[1024];

    int count = 0;

    while ((count = fis.read(buffer)) != -1) {

    bos.write(buffer, 0, count);

    }

    bos.flush();

    log.info("加密上传文件开始");

    byte[] bytes = encodeaes(key, bos.tobytearray());

    bytearrayinputstream is = new bytearrayinputstream(bytes);

    log.info("连接远程上传服务器"+cmbcutil.cmbchostname+":"+2021);

    ftpclient.connect(cmbcutil.cmbchostname, 2021);

    ftpclient.login(cmbcutil.cmbcloginname, cmbcutil.cmbcloginpassword);

    // log.info("连接远程上传服务器"+"192.168.54.106:"+2021);

    // ftpclient.connect("192.168.54.106", 2021);

    // ftpclient.login("hkrt-cmbchk", "3oljheziiknkvcu7sigz");

    ftpfile[] fs;

    fs = ftpclient.listfiles();

    for (ftpfile ff : fs) {

    if (ff.getname().equals(filepath)) {

    bl="true";

    ftpclient.changeworkingdirectory("/"+filepath+"");

    ftpclient.makedirectory(date);

    ftpclient.changeworkingdirectory("/"+filepath+"/" + date);

    }

    }

    log.info("检查文件路径是否存在:/"+filepath);

    if("false".equals(bl)){

    viewutil.dataseerrorperformedcommon( "查询文件路径不存在:"+"/"+filepath);

    return bl;

    }

    ftpclient.setbuffersize(1024);

    ftpclient.setcontrolencoding("gbk");

    // 设置文件类型(二进制)

    ftpclient.setfiletype(ftpclient.binary_file_type);

    ftpclient.storefile(filename, is);

    log.info("加密上传文件成功:"+filename+"。文件保存路径:"+"/"+filepath+"/" + date);

    return bl;

    } catch (exception e) {

    throw e;

    } finally {

    if (fis != null) {

    try {

    fis.close();

    } catch (exception e) {

    log.info(e.getlocalizedmessage(), e);

    }

    }

    if (bos != null) {

    try {

    bos.close();

    } catch (exception e) {

    log.info(e.getlocalizedmessage(), e);

    }

    }

    }

    }

    我要举报

    如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

    推荐资讯

    都在看什么

    展开全文
  • JAVA文件存储路径问题

    2021-02-13 00:51:52
    抛砖引玉吧 应该可以解决你的需求,不过有一个问题是 如果中间某个文件或...import java.io.File;import java.io.IOException;public class FileTest {public static final int CHILD_LIMIT = 10;// 最大啊子文件数p...
  • Q1:java如何在指定文件位置创建文件以下代码是在D:/myDir1/myDir2下创建名为myFile.txt的文件123456789101112131415161718192021222324252627publicstaticvoidtest3(){//根据系统的实际情况选择目录分隔符(windows...
  • Java后台,代码如下public static void downFile(HttpServletRequest request, HttpServletResponse response,String fileUrl,String fileName){BufferedInputStream bis = null;BufferedOutputStream bos = null;...
  • I have created a Java application that loads some configurations from a file conf.properties which is placed in src/ folder.When I run this application on Windows, it works perfectly. However when I t...
  • Java中的文件路径

    2021-02-25 19:16:29
    小生的work space路径是 E:\workspace\springMVCStudy,在该work sapce下创建Java Project,目录如下。1. 拿到new File("")所对应的绝对路径。在MyUrlDemo类中,通过File directory = new File("");String ...
  • java本地文件路径怎么写

    千次阅读 2021-02-12 19:28:28
    1. java文件路径怎么写File file = new File("D:\\123.txt");你这种不用绝对路径是不行的,只有一个方法,在web工程启动servlet中获取到webroot路径,在servlet的init中使用String webRoot = getServletContext()....
  • Java文件获取路径方式

    千次阅读 2021-02-13 00:12:44
    由于经常需要获取文件路径,但是比较容易忘记,每次需要总需要查询...Java文件获取路径方式:package first.second;import java.io.File;public class GetPath {public static void getPath(){//方式一System.out...
  • 一、通过浏览器提供下载,使文件直接以流的形式响应客户端浏览器。不多说了,直接上代码吧。public void downloadExcel(HttpServletRequest request,HttpServletResponse response) throws RowsExceededException, ...
  • 前言new File("test.file").createNewFile();...解释user.dir是jvm的系统属性,我们知道System.property可以获取jvm系统属性值,所以System.property("user.dir")路径就是文件的默认保存路径。user.dir与user.home...
  • Java,Linux文件路径

    千次阅读 2021-02-12 12:48:13
    斜杠和反斜杠正斜杠,又称左斜杠,符号是"/";反斜杠,也称右斜杠,符号是"\"。...我开发是在Windows平台上,所以Java程序配置文件文件路劲都是用的"\\",而项目是部署在Linux上的,所有文件路劲都是用的"/"。转...
  • java文件上传服务器路径地址 内容精选换一换已获取自动化工具包,并上传到服务器完成解压,得到完整的软件文件夹tsdbtool。已下载依赖:GCC-7.3.0、CMake-3.5.2的源码包,放到tsdbtool文件夹下的postgresqlDep文件夹...
  • 通常有两种方法来获取文件存放路径:方法一,获取系统有效盘符 如D:/,然后进行路径扩展,将扩展后的路径作为存放这些文件的根路径。这种方法有一个缺点,那就是在不同的操作系统中进行程序迁移时,会很麻烦;方法二...
  • java保存文件

    千次阅读 2021-02-12 19:11:02
    import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Random;import org.apache.commons.io.FileUtils;/*** 保存文件...
  • import java.io.*;public class Read {static String n="";//创建一个字符串用来记录目录及文件static void getDir(String strPath) throws Exception { //递归try{File f = new File(strPath);if (f.isDirectory())...
  • //将excel的数据写入文件 ByteArrayOutputStream fos = null; byte[] retArr = null; try { fos = new ByteArrayOutputStream(); wb.write(fos); retArr = fos.toByteArray(); } catch (FileNotFoundException e) {...
  • java读取文件路径

    2021-02-28 10:13:49
    for(intii=1;ii<=100;ii++){Stringstr=""+ii;...//保存文件路径StringfileName="";//保存文件名inti;for(i=0;i<=str.length();i+=2){if(i==str.length()-1||i==str.le...for (int ii = 1; ii <=100; ii...
  • java 文件路径问题

    2021-03-06 16:14:18
    问题windows下路径分割符'',java程序可识别的是'\'或'/',通过用户输入的路径进行转换,变成程序可识别的,但是转化后的路径程序不识别。程序import java.io.FileNotFoundException;import java.io.FileReader;import...
  • //文件保存路径 File saveDir = new File(savePath); if(!saveDir.exists()){ saveDir.mkdir(); } File file = new File(saveDir+File.separator+fileName); FileOutputStream fos = new FileOutputStream(file); ...
  • 2点击“聚类按钮”之后会弹出另一个界面可以输入需要聚类的图片个数,以及聚类成功后保存的位置,当点击“确定”按钮之后,对选择好的图片按照需求进行聚类并保存在自己选择路径上。ok以上是功能的简单介绍,下面...
  • Java获取项目内文件路径

    千次阅读 2021-03-09 20:59:12
    TestDemo.class.getResource("") 当前类所在路径 TestDemo.class.getResource("/") 编译路径根目录 class.getClassLoader().getResource("") 编译路径根目录 标签:getResource,Java,TestDemo,路径,System,获取,...
  • java如何实现保存文件到本地发布时间:2020-04-30 11:20:24来源:亿速云阅读:773作者:小新java如何实现保存文件到本地?相信有很多人都不太了解,今天小编为了让大家更加了解java,所以给大家总结了以下内容,一起...
  • java文件保存至服务器

    2021-02-27 20:50:19
    import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;public class ImageRequest{/***...
  • 方法一:import java.io.File;public class Main {public static void main(String[] args) throws Exception {File file = null;File dir = new File("C:\\Windows\\boot");file = File.createTempFile("JavaTemp",...
  • 这个问题就是在JSP中如何取得配置文件所在的路径我在WebRoot下有个file文件夹,在该文件夹下有个a.properties的配置文件,用过很多方法,如:request.getContextPath()+"a.properties","./WebRoot/f...
  • Java 保存上传文件

    2021-02-27 11:15:24
    file.isEmpty()) { try { // 保存文件路径(如果用的是Tomcat服务器,文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\upload\\文件夹中 String realPath = request.getSession().getServletContext()....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 434,231
精华内容 173,692
关键字:

java保存文件选择路径

java 订阅