Java如何提示用户保存word文档



我在这里找到了VB和C#版本,但在Java中找不到。我有一个字符串,我想提示用户将他们的word文档另存为,并让他们决定在哪里。我已经打开文件使用:

    public static void sendCommand(String command){
    try {  
        Process p = Runtime.getRuntime().exec("cmd /C " + command);  
        BufferedReader input = new BufferedReader(  
            new InputStreamReader(p.getInputStream()));  
            String line = null;  
            while ((line = input.readLine()) != null) {  
                System.out.println(line);  
                }  
        } catch (IOException e) {  
            e.printStackTrace();  
        }}
    public static void unzipOpenToSave(String zipName3){
        command = "cmd.exe /c move "" + zipName3 + ".docx.zip"  "" + zipName3 + ".docx"";
        sendCommand(command);
        //here we need to open the document and prompt to save as the name they just created
        String unzippedPath = wholePath.substring(0,wholePath.length() - 4);
        command = "rundll32 url.dll, FileProtocolHandler " + unzippedPath;
        sendCommand(command);
    }

我在这个网站的两个不同页面上找到了代码的想法。所以,接下来我需要打开一个提示来保存,字符串已经在他们键入名称的地方了。我想要么使用命令提示符使用相同的方法,要么只使用Java。有人有什么想法吗?谢谢

这还不错。我创建了一个框架,在框架中添加了文件选择器,修改了"批准按钮"的内容,设置了模式,使其显示我想要的名称,并将操作设置为按下按钮时(实际上是保存或重写文件)。以下是行之有效的方法:

JFrame saveFrame = new JFrame();
    saveFrame.setVisible(true);
    String unzippedPath = fullPath.substring(0,fullPath.length() - 4);
    JFileChooser jfc = new JFileChooser();
    jfc.setCurrentDirectory(new File(unzippedPath));
    jfc.setSelectedFile(new File(newSavedFile4));
    jfc.setApproveButtonText("Save");
    jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
    int result = jfc.showSaveDialog(null);
    if(result == JFileChooser.APPROVE_OPTION){
        in = new File(unzippedPath);
        out = new File(jfc.getSelectedFile().toString() + ".docx");
        System.out.println(out.getAbsolutePath());
        int BUF_SIZE = (int) in.length();
        FileInputStream fiss = new FileInputStream(in);
        FileOutputStream foss = new FileOutputStream(out);
        try{
            byte[]buf = new byte[BUF_SIZE];
            int i = 0;
            while((i = fiss.read(buf)) != -1){
                foss.write(buf, 0, i);
            }
        }
        catch(Exception e){
            throw e;
        }
        finally{
            if(fiss != null) fiss.close();
            if(foss != null) foss.close();
        }
        saveFrame.setVisible(false);
    }
    else if(result == JFileChooser.CANCEL_OPTION){
        saveFrame.setVisible(false);
    }
    JPanel SPanel = new JPanel();
    SPanel.setLayout(new FlowLayout());
    SPanel.add(jfc);

    saveFrame.setLayout(new FlowLayout());
    saveFrame.add(SPanel);
    saveFrame.pack();
    saveFrame.setTitle("Save your Doc");
    saveFrame.setLocationRelativeTo(null);

谢谢Luke D+1如果可以的话(我觉得我的分数还不够)(我是原始海报,不记得我的密码,对不起)

您可能会想使用Swing来实现这一点,假设您想以图形方式实现。JFileChooser是一个不错的选择。

http://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser.html

此外,这里还有一个很好的例子。

相关内容

  • 没有找到相关文章

最新更新