精华内容
下载资源
问答
  • Java创建临时文件示例

    千次阅读 2015-05-28 18:07:59
    Java创建临时文件示例,在实际的程序设计中经常会用到临时文件,用于存储临时数据等。Java 语言也支持临时文件操作,本例演示了如何创建一个临时文件,并在其中存储数据。如下图所示,当按下“Create a TempFile”...
    • Java创建临时文件示例,在实际的程序设计中经常会用到临时文件,用于存储临时数据等。Java 语言也支持临时文件操作,本例演示了如何创建一个临时文件,并在其中存储数据。如下图所示,当按下“Create a TempFile”按钮后,程序即创建一个“TempFile.tmp”的临时文件并将窗口上部的所示文本存储在其中。您可以查看自己系统上的临时文件夹,如可能是“c:\windows\temp”,会多出一个新的文件,但并非“TempFile.tmp”,一般是“TempFile*.tmp”,如“TempFile22023.tmp”。这是系统为了防止文件重名。

      Java创建临时文件示例

      实现方法:本例的实现使用了java.io.File 类中的createTempFile()方法,其原型如下:

      1 public static File createTempFile(String prefix,String suffix) throws IOException
      2 public static File createTempFile(String prefix,String suffix,File dir) throws IOException

      其中参数prefix 表示临时文件名的前几个字符;参数suffix 表示后缀,必须是“.tmp”或“null”,当是null 时,系统自动添上.tmp;参数dir 表示临时文件夹位于此目录下。本例中,将使用第一种形式的createTempFile()方法。另外,还使用了File 类中的deleteOnExit()方法,使得当程序结束退出时删除临时文件,该方法经常和临时文件合用。其原型如下:

      1 public void deleteOnExit()

      程序代码的编写:
      1.新建一个Project,取名为JTempFileDemo。
      2.新建一个Application,取名为JTempFileDemo;主窗口取名为MainFrame,标题为JTempFileDemo。
      3.在MainFrame 类的设计器中添加一个JButton 组件置于窗口的下部和一个JScrollPane 组件置于窗口的中部,并子JScrollPane 组件中添加一个JTextArea 组件。具体代码如下:

      1 public class MainFrame extends JFrame {
      2 private JPanel contentPane;
      3 private BorderLayout borderLayout1 = new BorderLayout();
      4 //添加的各组件
      5 private JScrollPane jScrollPane1 = new JScrollPane();
      6 private JTextArea jTextArea1 = new JTextArea();
      7 private JButton jButton1 = new JButton();
      8 …..
      9 }

      4.编写MainFrame 类的初始化方法jbInit(),设置各组件的初始属性,并添加JButtton 组件的事件监听器,代码如下:

      01 private void jbInit() throws Exception {
      02 //设置各组件的属性,并在窗口中添加这些组件
      03 //setIconImage(Toolkit.getDefaultToolkit().createImage(MainFrame.class.getResource("[Your Icon]")));
      04 contentPane = (JPanel) this.getContentPane();
      05 contentPane.setLayout(borderLayout1);
      06 this.setSize(new Dimension(400162));
      07 this.setTitle("JTempFileDemo");
      08 jButton1.setText("Create a TempFile");
      09 jButton1.addActionListener(new java.awt.event.ActionListener() {//添加JButton 组件的事件监听器
      10 public void actionPerformed(ActionEvent e) {
      11 jButton1_actionPerformed(e);
      12 }
      13 });
      14 contentPane.add(jScrollPane1, BorderLayout.CENTER);
      15 contentPane.add(jButton1, BorderLayout.SOUTH);
      16 jScrollPane1.getViewport().add(jTextArea1, null);
      17 }

      5.编写JButton 组件的事件处理方法,当按钮按下时,创建一个临时文件,并把JTextArea 中的文本存入该临时文件中,具体的代码如下:

      01 void jButton1_actionPerformed(ActionEvent e) {
      02 File tempFile=null//申明文件对象
      03 FileOutputStream fos=null//申明文件输出流
      04 PrintStream ps=null//申明打印流
      05 //创建临时文件并存储数据
      06 try{
      07 tempFile = File.createTempFile("TempFile",".tmp"); //创建一个临时文件
      08 //创建文件输出流和打印流
      09 fos = new FileOutputStream(tempFile);
      10 ps = new PrintStream(fos);
      11 //将JTextArea 组件中的文本存入临时文件中
      12 ps.print(this.jTextArea1.getText());
      13 ps.close(); //关闭流
      14 tempFile.deleteOnExit(); //当程序退出时,删除临时文件
      15 }catch(Exception err){
      16 err.printStackTrace();
      17 }
      18 }
    展开全文
  • Java读取图片文件

    万次阅读 2017-07-18 20:54:17
    需求:读取图片输入流,获取图片并存储在桌面上 代码如下: import javax.imageio.ImageIO; import javax.imageio.stream.ImageOutputStream; import java.awt.*; import java.awt.image.BufferedImage; import ...

    需求:读取图片输入流,获取图片并存储在桌面上

    代码如下:

    import javax.imageio.ImageIO;
    import javax.imageio.stream.ImageOutputStream;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.*;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    /**
     * Created by lanouhn on 17/7/18.
     */
    public class JavaNetRequestImg {
      public static void main(String [] args){
        //输入一个图片网址,将其获取到桌面
        //1.处理网址URL
        //2.通过网址打开网络链接
        //3.判断网络响应
        //4.读取图片文件流
        //5.创建图片存储文件路径,将文件流写进新创建的文件
    
        HttpURLConnection connection=null;
        URL url=null;
        try {
            String myurl="http://img3.duitang.com/uploads/item/201606/03/20160603120505_rwQJP.jpeg";
            url = new URL(myurl);
            connection=(HttpURLConnection) url.openConnection();
            int code=connection.getResponseCode();
    
              if(code == 200){  //响应成功
                  BufferedImage image=ImageIO.read(connection.getInputStream()); //读取图片文件流
                  String path="/Users/lanouhn/Desktop/moya.jpeg";  //创建存储图片文件的路径
                  File file=new File(path);
                  ImageIO.write(image,"jpeg",  file);  //将图片写进创建的路径
              }
            } catch (MalformedURLException e) {
              e.printStackTrace();
            } catch (IOException e) {
              e.printStackTrace();
            }
      }
    
    }
    


    运行结果: 桌面出现一个moya.jpeg的图片文件

    展开全文
  • java上传图片文件

    万次阅读 多人点赞 2013-06-30 22:46:27
    总的说图片上传有两种方式,一种是把图片文件写到数据库中,另一种是存到服务器文件目录中。写到数据库中的图片文件需要转换成二进制流的格式,占用数据库空间比较,适合少量图片的存储,比如说,系统中某些小图标,...

      总的说图片上传有两种方式,一种是把图片文件写到数据库中,另一种是存到服务器文件目录中。写到数据库中的图片文件需要转换成二进制流的格式,占用数据库空间比较,适合少量图片的存储,比如说,系统中某些小图标,写到数据库中的优点是比较安全,不容易被用户不小心删除。

      如果是大量的图片的存储通常的做法是保存到服务器的某个文件夹中。而完成上传有很多方式,可以采用流的方式,可以采用ftp的方式,这里采用fileupload方式。

      随着系统规模的不同,对图片文件的处理方式也不尽相同。如果系统中图片的数量不是很大,直接把所有的图片存储到同一个目录下即可。如果图片的积累比较多,可以根据物资分类对图片进行相应的分类储存,这样会节省一些在磁盘中查找文件的时间。

     图片上传到文件中,可以直接上传图片到目录中,也还可以将图片文件名、文件路径写入到数据库中,也可以在程序中动态的创建文件路径。如果公司中要求图片要用专门的服务器存放,这时候把文件路径写活还是比较合适的。一般的如果一种物资(物料)对应一张图片是比较容易处理的。如果对应多张图片,处理起来就需要配合循环使用。一方面,需要处理图片的动态显示,另一方面要检查图片文件命名是否重复。另外再图片处理(上传、删除、修改)的时候需要配合事务。

      下面重点介绍一下使用fileupload方式实现图片上传的最基本的实现。

    1、前端使用file标签:

    <input name = "fileName" type ="file" class ="text1" size ="40" maxlength="40">

    2、设置文件的enctype格式:multipart/form-data

    <form name="itemForm"  target="_self" id="itemForm" method="post"  action="servlet/item/FileUploadServlet" enctype="multipart/form-data" >

    关于enctype="multipart/form-data" 的说明:

    在jsp中使用了该格式,对应的Servlet就不能使用request.getParameter()取得参数,要使用ServletFileUpload对象的parseRequest方法先把request对象中的数据解析,然后,使用解析出的元素的isFormField标志,配合getFieldName方法来获取数据。

    3、FileUploadServlet的实现:

    package com.bjpowernode.drp.basedata.web;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.Iterator;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    import com.bjpowernode.drp.basedata.manager.ItemManager;
    import com.bjpowernode.drp.basedata.manager.ItemManagerImpl;
    import com.bjpowernode.drp.util.ApplicationException;
    
    public class FileUploadServlet extends AbstractItemServlet {
    	
    	
    	private File uploadPath;
    	
    	
    	private File tempPath;
    	
    
    	
    	@Override
    	public void init() throws ServletException {
    		//在系统启动的时候,就开始初始化,在初始化时,检查上传图片的文件夹和存放临时文件的文件夹是否存在,如果不存在,就创建		
    		
    		//获取根目录对应的真实物理路径
    		uploadPath = new File(getServletContext().getRealPath("upload"));
    		System.out.println("uploadPath=====" + uploadPath);
    		//如果目录不存在
    		if (!uploadPath.exists()) {
    			//创建目录
    			uploadPath.mkdir();
    		}
    		
    		//临时目录
    		//File tempFile = new File(item.getName())构造临时对象
    		tempPath = new File(getServletContext().getRealPath("temp"));
    		if (!tempPath.exists()) {
    			tempPath.mkdir();
    		}
    		
    		//如果不显示调用父类方法,就不会有itemManager实例,因此会造成空指针
    		super.init();
    		
    		
    	
    	}
    	
    
    
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    			doPost(request,response);
    	}
    
    	
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    			
    		//从item_upload.jsp中拿取数据,因为上传页的编码格式跟一般的不同,使用的是enctype="multipart/form-data"
    		//form提交采用multipart/form-data,无法采用req.getParameter()取得数据
    		//String itemNo = req.getParameter("itemNo");
    		//System.out.println("itemNo======" + itemNo);
    			
    		
    	/********************************使用 FileUpload 组件解析表单********************/
    		
    		//DiskFileItemFactory:创建 FileItem 对象的工厂,在这个工厂类中可以配置内存缓冲区大小和存放临时文件的目录。
    		DiskFileItemFactory factory = new DiskFileItemFactory();
    		// maximum size that will be stored in memory
    		factory.setSizeThreshold(4096);
    		// the location for saving data that is larger than getSizeThreshold()
    		factory.setRepository(tempPath);
    		
    		
    		
    		//ServletFileUpload:负责处理上传的文件数据,并将每部分的数据封装成一到 FileItem 对象中。
    		//在接收上传文件数据时,会将内容保存到内存缓存区中,如果文件内容超过了 DiskFileItemFactory 指定的缓冲区的大小,
    		//那么文件将被保存到磁盘上,存储为 DiskFileItemFactory 指定目录中的临时文件。
    		//等文件数据都接收完毕后,ServletUpload再从文件中将数据写入到上传文件目录下的文件中
    		
    		
    		ServletFileUpload upload = new ServletFileUpload(factory);
    		// maximum size before a FileUploadException will be thrown
    		upload.setSizeMax(1000000 * 20);
    		
    		
    		/*******************************解析表单传递过来的数据,返回List集合数据-类型:FileItem***********/
    		
    		try {
    			
    			List fileItems = upload.parseRequest(request);
    			
    			String itemNo = "";
    			//Iterator iter = fileItems.iterator()取其迭代器
    			//iter.hasNext()检查序列中是否还有元素
    			for (Iterator iter = fileItems.iterator(); iter.hasNext();) {
    				//获得序列中的下一个元素
    				FileItem item = (FileItem) iter.next();
    				
    			
    				//判断是文件还是文本信息
    				//是普通的表单输入域
    				if(item.isFormField()) {
    					if ("itemNo".equals(item.getFieldName())) {
    						itemNo = item.getString();
    					}
    				}
    				//是否为input="type"输入域
    				if (!item.isFormField()) {					
    					//上传文件的名称和完整路径
    					String fileName = item.getName();
    					
    					long size = item.getSize();
    					//判断是否选择了文件
    					if ((fileName == null || fileName.equals("")) && size == 0) {
    						continue;
    					}
    					//截取字符串 如:C:\WINDOWS\Debug\PASSWD.LOG
    					fileName = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
    					
    					 // 保存文件在服务器的物理磁盘中:第一个参数是:完整路径(不包括文件名)第二个参数是:文件名称	
    					//item.write(file);
    					//修改文件名和物料名一致,且强行修改了文件扩展名为gif
    					//item.write(new File(uploadPath, itemNo + ".gif"));
    					//将文件保存到目录下,不修改文件名
    					item.write(new File(uploadPath, fileName));
    					
    					
    					
    					//将图片文件名写入打数据库					
    					itemManager.uploadItemImage(itemNo, fileName);
    					
    				}
    			}
    			response.sendRedirect(request.getContextPath() + "/servlet/item/SearchItemServlet");
    		} catch (Exception e) {
    			e.printStackTrace();
    			throw new ApplicationException("上传失败!");
    		}	
    		
    		
    	}
    	
    
    }
    


    该类继承了AbstractItemServlet: 所有物料Servlet的抽象父类,负责实例化ItemManager

    /**
     * 所有物料Servlet的抽象父类,负责实例化ItemManager
     * @author LiMin
     *
     */
    public abstract class AbstractItemServlet extends HttpServlet {
    
    	//虽然不是线程安全的,但是如果只读的话,是不会有错误的
    	protected ItemManager itemManager = null;
    		
    	@Override
    	public void init() throws ServletException {
    		itemManager = new  ItemManagerImpl()
    	}
    	
    
    }
      

      ItemManagerImpl是实现了ItemManager接口的子类。这种设计模式有一个问题,有待遇优化,但这里为了说明图片上传,不多做无关的赘述。


    总结:

      关于init()初始化方法:

      在Servlet初始化的时候,就动态创建目录,这里是把一个upload和临时文件tempPath创建到了tomcat的webapps下的项目的跟目录中。

      值得注意点是这里需要显示调用super.init()方法(super不是父类对象的引用,但是负责父类的方法的调用),否则,可能会造成该类的空指针。

      上传大致分三步执行:使用 FileUpload 组件解析表单;解析表单传递过来的数据,返回List集合数据-类型:FileItem;最后上传图片。

      使用FileItem的isFormField()方法判断是普通文本还是文件;

      使用FileItem.write(new File(uploadPath, fileName))上传文件,第一个参数是:完整路径(不包括文件名)第二个参数是:文件名称;

     处理普通文本数据:

     if ("itemNo".equals(item.getFieldName())) {
    itemNo = item.getString();
     } 

      上传是很多年比较成熟的技术,有很多已经封装好的,我们平时的项目中可以直接拿来用,但是了解一些基本的原理是必不可少的。

    展开全文
  • 1.根据一个文件路径创建Image对象 Image image = ImageIO.read(new File(filepath)); 2.将Image对象保存为文件形式 BufferedImage image = ImageIO.read(new File(filepath));//要想保存这个对象的话你要把image...

    一.创建与保存

    1.根据一个文件路径创建Image对象

    Image image = ImageIO.read(new File(filepath));

    2.将Image对象保存为文件形式

    //要想保存这个对象的,需要把image声明为BufferedImage 类型
    BufferedImage image = ImageIO.read(new File(filepath));
    ImageIO.write(image, "jpg", new File("f:/image/apple.jpg"));

    二.在图像界面中显示图像

    1.使用窗口加载,将图片变为背景显示

       

      ImageIcon bg =new ImageIcon(image);
      JLabel jl = new JLabel(bg);
      jl.setBounds(0,0,bg.getIconWidth(),bg.getIconHeight());
      jf.setSize(bg.getIconWidth(), bg.getIconHeight());
      jf.setResizable(false);
      //将图片添加到分层窗格的最底层作为背景
      jf.getLayeredPane().add(jl, new Integer(Integer.MIN_VALUE));
      //内容窗格转化为JPanel,否则不能设置为透明
      JPanel jp = (JPanel)getContentPane();
      jp.setLayout(null);
      jp.setOpaque(false);//设置为透明 

    2.使用Graphics画笔将图片画在窗口中

        重写窗体类的paint(Graphics g)方法 

    public void paint(Graphics g){
        g.drawImage(0,0,400,300,null);   //该方法的主体是窗口
    } 

        当然也可以自己写一个画图的方法    

    public void draw(Graphics g){
         g.drwaImage(0,0,400,300,null);   //记得传一个Graphics画笔进来
    }

    3.关于Graphics 对象为null的解决

           (1) paint系列方法里的是jre创建的

           (2) 当前类继承了jframe的话直接可以这样写的graphics g=getgraphics();

           (3) 其他情况通过 Graphics g =new Graphics()创建的对象为null,应该采用下面方法:

    BufferedImage bi = new BufferedImage(120,120, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2d = bi.createGraphics();
    
    展开全文
  • java上传图片文件回显

    千次阅读 2017-04-10 09:29:30
    总的说图片上传有两种方式,一种是把图片文件写到数据库中,另一种是存到服务器文件目录中。写到数据库中的图片文件需要转换成二进制流的格式,占用数据库空间比较,适合少量图片的存储,比如说,系统中某些小图标,...
  • java 代码创建图片

    千次阅读 2017-07-07 14:21:45
    // 根据java 代码生成图片保存成文件 private void createImage(File file, String s) throws IOException { Font font = new Font("微软雅黑", Font.BOLD, 25); BufferedImage bi = new BufferedImage(200, 200,...
  • java根据路径创建文件

    千次阅读 2018-08-16 10:20:32
    1:存在直接进入文件创建 不存在直接创建   Java开发交流群 677807540 package com.kuaifa.dianxiaomao.web.util; import java.io.File; public class CreateFileUtils { //创建新的文件夹 public ...
  • java代码读取图片文件中的详细信息,包括图片的拍摄设备,曝光,快门等信息
  • 现在创建出来的java class文件也是这样的![图片说明](https://img-ask.csdn.net/upload/201711/23/1511426283_259446.jpg) 跪求各位熟练运用intellij idea大神的帮助 现在创建出来的java class文件也是
  • java 创建文件夹,读写文件

    千次阅读 2011-12-21 21:09:09
    import java.io.File; public class Q { public static void main(String[] args) { String address="E:\\test\\a"; File file=new File(addres);//在e盘的test文件夹下面 创建一个叫 a的文件夹 \\ 是转义用...
  •   首先看一下Java创建文件目录的代码: /** * 创建父文件路径 * @param imagePath * @return */ public boolean makeParentFolder(String imagePath){ File parentFile = new File(imagePath); ...
  • JAVA上传文件图片到服务器保存

    万次阅读 热门讨论 2017-04-10 11:58:57
    这里我记录一个比较简单方便操作的JAVA上传文件图片到服务器并且保存! 首先是页面 html的 我这是提交一个文件和类型 <div style="border: 1px solid red;"> 我是添加一张临时图片得到微信的media_...
  • Java基础教程40-创建和写入文件

    千次阅读 2017-07-02 23:40:50
    我们来介绍如何创建一个空白的文件,然后如果用printwriter来写入内容到文件。相关代码如下: package lesson01; import java.io.File; import java.io.IOException; import java.io.PrintWriter; public
  • Java实现pdf文件图片

    千次阅读 2020-08-24 22:07:21
    Java实现pdf文件转换为图片 可根据自己的逻辑进行修改 pom依赖 <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox --> <dependency> <groupId>org.apache.pdfbox</groupId&...
  • 背景:项目中需要依据上传的图片或者贴在文本框的图片地址url,获得图片文件,并将图片生成到服务器指定目录 先上代码package com.eelly.imagesearch.common; import java.io.ByteArrayOutputStream; import java....
  • Java图片上传/文件上传

    千次阅读 2016-11-18 11:23:33
    Spring+SpringMVC 图片上传/文件上传
  • ![图片说明]...顺便说明,这个是我用fileupload上传文件时候需要同时创建文件夹,怎么都创建不到 最后那个时间戳弄来的时间字符串,希望出来的效果是: d:\wanglin\uploadFile\2016-06-01 20:37:18\
  • Java实现七牛云文件图片上传下载

    万次阅读 多人点赞 2021-09-22 15:54:14
    文章目录一、准备工作1.1.为什么选择七牛云?...接下来就是FileUtil.java(判断图片的后缀是否符合要求)3.4.接下来写QiniuService.java3.5.最后是controller3.6.查看七牛云存储结果四、总结 一、准备工作 1
  • Java根据html模板创建 html文件

    千次阅读 2018-09-21 09:32:32
    1.创建html的java代码 package com.tydic.eshop.util; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Calendar; /** * @ClassName: CreateHtmlUtils * @Description...
  • java 在指定的目录下创建多个临时文件 java 在指定的目录下创建多个临时文件
  • Java 常用图片处理合集

    万次阅读 2019-07-01 09:52:16
    JDK类库创建一张简单图片 辨别图片类型 判断文件是否为图片格式 java加水印 JDK类库裁剪图片 Java合并图片 Java修改图片格式 Java修改图片尺寸 Java不修改尺寸压缩图片 java根据http url下载图片 Java携带...
  • java实现七牛云图片文件的上传

    千次阅读 2020-02-20 14:46:11
    java实现七牛云图片文件的上传 七牛云:https://portal.qiniu.com/create#resource 首先需要去注册一个账号实现实名认证 之后打开七牛云的 我们需要先创建一个储存空间来给我们使用 这里的key也需要记录下来我们...
  • Java 实现 word文件添加 图片水印 用到的jar文件会在我博客另外文件中紧跟,需要的可以下载 需要说明的,需要根据自己运行的操作系统将 jacob-1.15-M4-放在jdk的C:\Program Files\Java\jdk1.8.0_45\jre\bin 目录下方...
  • java图片文件处理工具类【包括图片缩放,剪切等功能】 package com.taocz.youngth.util; import java.awt.Graphics; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt....
  • Java图片处理 - 创建工具类

    千次阅读 2017-03-22 19:39:32
    Java图片处理 - 创建工具类
  • 1 上传图片 1.1 需求 在修改商品页面,添加上传商品图片功能。 1.2 springmvc中对多部件类型解析 在 页面form中提交enctype="multipart/form-data"的数据时,需要springmvc对multipart类型的数据进行解析。   在...
  • java上传图片或者文件到nginx服务器

    万次阅读 2018-08-21 15:01:50
    红线部分就是Nginx上的路径,注解@requiresPermissions这个是权限的问题,可以去掉千万不要忘了红线部分这...标题这个因为你创建的目录和用户组是root,Nginx进程是Nginx用户启动的,访问不了root用户目录下的文件,Ngin...
  • java文件实现文件的上传和下载

    万次阅读 多人点赞 2019-06-10 10:46:20
     文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到本地。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 272,834
精华内容 109,133
关键字:

java创建图片文件

java 订阅