File savefile=new File(new File(realpath),imageFileName);
===============================================
构造方法摘要
File(File parent, String child)
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname)
通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。
File(String parent, String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(URI uri)
通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例。
===============================================
这个!!资格是File的构造函数,构造函数的作用你应该要知道。就是你在用一个类之前 ,需要加载其他的东西。。那么就放在构造函数里。所有就会参数那么多的构造函数。因为需求
作者选择了File(String parent, String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
这个作为实例化的构造函数。。
//就可以了啊为什么还要new File(realpath)啊
你说的这句话!!!
看参数,如果你的参数是直接的路径的话 ,那你用这个就OK了。但现在给的参数是String parent, String child。那就用File(String parent, String child) ,所以说,按照需求来。
传说中的分隔符
if(!savefilegetParentFile()exists())//
这个是应对你第一个问题的。初始化的时候。你用File(String parent, String child) 这个的。
很多时候,是按照需求来的。
if(!savefilegetParentFile()exists())// 这个是取父路径
if(!savefileexists())// 这个是取文件路径
这个是因为需求的原因 ,所以没用if(!savefileexists())// 这个是取文件路径。你只要清楚整个方法实现什么功能就OK了。见识多了。你就知道。我说的是什么意思了!!还有。学会打断点调试。这个是非常重要的。调试几乎占据了敲代码的大部分时间。特别是刚开始的时候。
你试着打断点调试。看看这些参数代表的是什么!!参数内容是什么。很重要。我这么说的,就是想你在解决这个问题以后,自己去解决和学习其他的问题!你照我的方法去试试。一个自己不会的东西 就去调试!!。很重要!生看是很累的!
代表的意义可能是不一样的。我并不是只这个。其他的东西也类似。很多时候。你现在不理解。
但等你见识多了。你自然就知道很多东西了。而且 ,之前的问题也迎刃而解。
=======================
全手敲。HUHu 你有我QQ的,不懂你再问!没什么的!下班了!
SystemEnvironmentCurrentDirectory;
//例: c:/test/
ApplicationExecutablePath;(包括名称)
//例: c:/test/myappexe
ApplicationStartupPath;(不包括名称)
//例: c:/test/
绝对路径是直接到达目标位置,通常是从盘符开始的路径。完整的描述文件位置的路径就是绝对路径,以web站点根目录为参考基础的目录路径。
绝对路径名的指定是从树型目录结构顶部的根目录开始到某个目录或文件的路径,由一系列连续的目录组成,中间用斜线分隔,直到要指定的目录或文件,路径中的最后一个名称即为要指向的目录或文件。之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的。
扩展资料
几种编程语言获取程序所在路径的方法:
1、在golang程序里面获取程序所在路径:
package main
import (
"path/filepath"
"os"
"fmt"
"log"
)
func main() {
execDir, err := filepathAbs(filepathDir(osArgs[0]))
if err = nil {
logFatal(err)
}fmtPrintln(execDir)
}
2、python脚本所在路径:
import os
print(ospathsplit(ospathrealpath(__file__))[0])
3、shell脚本获取脚本的绝对路径:
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
getClass()getResource() 方法获得相对路径( 此方法在jar包中无效。返回的内容最后包含/)
例如 项目在/D:/workspace/MainStream/Test
在javaProject中,getClass()getResource("/")getFile()toString() 返回:/D:/workspace/MainStream/Test/bin/
public String getCurrentPath(){//取得根目录路径
String rootPath=getClass()getResource("/")getFile()toString();
//当前目录路径
String currentPath1=getClass()getResource("")getFile()toString();
String currentPath2=getClass()getResource("")getFile()toString();
//当前目录的上级目录路径
String parentPath=getClass()getResource("/")getFile()toString();
return rootPath;
}
参考资料:
不管是linux系统还是windows系统,include()里的目录分隔符都可以用/,保持一致性。
既然include('/leftphp')调用成功, 那就显示出leftphp 的完整路径来调试下,
比如:
<php
var_dump(realpath('/topphp');
var_dump(realpath('/leftphp');
>
页面jsp文件
<form name="add" action="/gxtWeb/lvjcontacts/manyContactsaction" method="post"enctype="multipart/form-data" onsubmit="return checkNull();">
<s:file name="upload"></s:file>
<input type="submit" value="导入信息" >
</form>
action处理:
public class ManyContactsAction extends ActionSupport {
private File upload;
private String uploadContentType;// 要上传的文件的类型
private String uploadFileName;// 要上传的文件
private ContactsManager manager;
private Contacts cbean;
private Persons pbean;
private Long gid;
private String result;
public String execute() throws Exception {
// 检查后缀名是否符合条件,同时更改上传文件的文件名
int filesize = thisgetUploadFileName()length();
String fileEx = thisgetUploadFileName()substring(
thisgetUploadFileName()indexOf(""), filesize);
//获取文件名
String fileName=uploadFileNamesubstring(0,uploadFileNameindexOf(""));
// 获得上传路径
String realPath = ServletActionContextgetServletContext()getRealPath(
"/UploadFile/");
File saveFile=null;
if (upload != null) {
// 修改文件名,使上传后不至于重复替代
// thisuploadFileName = new Date()getTime() + fileEx;
saveFile = new File(new File(realPath), uploadFileName);
if (!saveFilegetParentFile()exists()) {
saveFilegetParentFile()mkdirs();
}
FileUtilscopyFile(upload, saveFile);// 到这里,文件已上传成功
// 下面进行判断文件是否是rar文件,是就需要解压
if (fileExequals("rar")) {
Systemoutprintln("saveFile:" + saveFile);//rar文件所在保存路径
Systemoutprintln("realPath:" + realPath);//解压后保存路径
// 定义解压字符串,用于解压上传的rar文件,注意此处需要一个unrarexe文件
String rarpath = ServletActionContextgetServletContext()
getRealPath("/rarFile/UNRARexe x -t -o+ -p- \"");
String jieya = rarpath + saveFile + "\" \"" + realPath + "\"";
Process p1 = RuntimegetRuntime()exec(jieya);// 将传输的rar文件解压
p1waitFor();
p1destroy();
FileUtilsdeleteQuietly(saveFile);// 删除rar文件
saveFile=new File(new File(realPath),fileName+"xls");
Systemoutprintln("解压后:"+saveFile);
ServletActionContextgetResponse()getWriter()println(
"success!!");
}
if (fileExequals("xls") || fileExequals("xlsx")) {
// 开始读取文件了,获得第一列手机号码
Workbook persons = WorkbookgetWorkbook(saveFile);// 获得xls文件
Sheet sheet = personsgetSheet(0);// 获得第一个工作簿
Systemoutprintln("列数:" + sheetgetColumns());
int count = sheetgetRows();// 取得记录数,count行
String cphone;
// 遍历行,获得列数据
for (int i = 0; i < count; i++) {
cphone = sheetgetCell(0, i)getContents();// 第一列的所有行
pbean = managergetPerson(cphone);// 获得该用户,查询别的信息
cbean = new Contacts();
Long contactsid = pbeangetId();
Long pid = 10002L;
cbeansetContactsid(contactsid);// 联系人id
cbeansetPid(pid);// 用户本身的PID
cbeansetCid("cid");// 关系的学校ID
cbeansetGid(gid);// 分组id
manageraddPerson(cbean);
thiscontactsLogwriteLog("10002", "批量添加联系人", "批量添加联系人 *** 作","");
Systemoutprintln("添加成功!");
}
}
return SUCCESS;
} else {
return INPUT;
}
}
}
xml配置:
<action name="manyContacts" class="manyContactAction">
<result name="success" type="redirectAction">personInfoaction
</result>
<result name="input" type="redirectAction">showmangpersonsaction
</result>
</action>
以上就是关于java的一个疑问 求高手回答全部的内容,包括:java的一个疑问 求高手回答、VB中如何获取当前程序的绝对路径、通过java获取当前项目路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)