java传地址
//保存图片
privatevoidsaveImg(HttpServletRequestrequest,FormFileimgFile,FileFormfileForm){
if(imgFile!=null&&imgFile.getFileSize()>0){
StringfileName=imgFile.getFileName();
StringsqlPath="img/"+fileName;
//图片所在路径
StringsavePath=request.getSession().getServletContext().getRealPath("/")+"img\"+fileName;
System.out.println(fileName);
System.out.println(sqlPath);
System.out.println(savePath);
HttpSessionsession=request.getSession();
session.setAttribute("savePath",savePath);
session.setMaxInactiveInterval(60*60);
//StringsavePath1=(String)session.getAttribute("savePath");
//数据库
fileForm.getFile().setFileEmpPhoto(sqlPath);
//文件
try{
InputStreaminput=imgFile.getInputStream();
FileOutputStreamoutput=newFileOutputStream(savePath);
byte[]b=newbyte[1024];
while(input.read(b)!=-1){
output.write(b);
b=newbyte[1024];
}
output.close();
input.close();
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
2. Java中如何改变参数的值(实现按址传递)
java方法中传值和传引用的问题是个基本问题,但是也有很多人一时弄不清。你的题目本身就有歧义,无法直接针对题目作答(因为java不存在类似c或c++那样的传址)。我从头讲起:
(一)基本数据类型:传值,方法不会改变实参的值。
(二)对象类型参数:传引用,方法体内改变形参引用,不会改变实参的引用,但有可能改变实参对象的属性值。例如
public class TestFun4 {
public static void testStringBuffer(StringBuffer sb){
sb.append("java");//改变了实参的内容
}
public static void main(String[] args) {
StringBuffer sb= new StringBuffer("my ");
new TestFun4().testStringBuffer(sb);
System.out.println("sb="+sb.toString());//内容变化了
}
}
3. 怎么用java程序实现上传文件到指定的URL地址
代码如下:
import java.io.*;
/**
* 复制文件夹或文件夹
*/
public class CopyDirectory {
// 源文件夹
static String url1 = "f:/photos";
// 目标文件夹
static String url2 = "d:/tempPhotos";
public static void main(String args[]) throws IOException {
// 创建目标文件夹
(new File(url2)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(url1)).listFiles();
for (int i = 0; i < file.length; i++) {
if (file[i].isFile()) {
// 复制文件
File(file[i],new File(url2+file[i].getName()));
}
if (file[i].isDirectory()) {
// 复制目录
String sourceDir=url1+File.separator+file[i].getName();
String targetDir=url2+File.separator+file[i].getName();
Directiory(sourceDir, targetDir);
}
}
}
// 复制文件
public static void File(File sourceFile,File targetFile)
throws IOException{
// 新建文件输入流并对它进行缓冲
FileInputStream input = new FileInputStream(sourceFile);
BufferedInputStream inBuff=new BufferedInputStream(input);
// 新建文件输出流并对它进行缓冲
FileOutputStream output = new FileOutputStream(targetFile);
BufferedOutputStream outBuff=new BufferedOutputStream(output);
// 缓冲数组
byte[] b = new byte[1024 * 5];
int len;
while ((len =inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
// 刷新此缓冲的输出流
outBuff.flush();
//关闭流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
// 复制文件夹
public static void Directiory(String sourceDir, String targetDir)
throws IOException {
// 新建目标目录
(new File(targetDir)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(sourceDir)).listFiles();
for (int i = 0; i < file.length; i++) {
if (file[i].isFile()) {
// 源文件
File sourceFile=file[i];
// 目标文件
File targetFile=new
File(new File(targetDir).getAbsolutePath()
+File.separator+file[i].getName());
File(sourceFile,targetFile);
}
if (file[i].isDirectory()) {
// 准备复制的源文件夹
String dir1=sourceDir + "/" + file[i].getName();
// 准备复制的目标文件夹
String dir2=targetDir + "/"+ file[i].getName();
Directiory(dir1, dir2);
}
}
}
}