2012-12-07 52 views
1

首先我是iMacros脚本编写器。 这是Java函数写一个文件(没有完全完成,但你的想法)使用java在JavaScript中创建文件

bufferedWriter = new BufferedWriter(new FileWriter(filename)); 

      //Start writing to the output stream 
      bufferedWriter.write("Writing line one to file"); 

现在波纹管在JavaScript用来做同样的任务,因为上述功能的Java功能,我运行的.js iMacros中的文件。奇迹般有效。

//Function to write the file 
function writeFile(filename, data) 
{ 
    try 
    { 

     //write the data 

     out = new java.io.BufferedWriter(new java.io.FileWriter(filename, true)); 
     out.newLine(); 
     out.write(data); 
     out.close(); 
     out=null; 
    } 
    catch(e) //catch and report any errors 
    { 
     alert(""+e); 
    } 
} 

现在我需要一个java函数,它会在硬盘驱动器的位置创建文件和文件夹,我发现这个。

package com.mkyong.file;

import java.io.File; import java.io.IOException;

public class CreateFileExample 
{ 
    public static void main(String[] args) 
    { 
     try { 

      File file = new File("c:\\newfile.txt"); 

      if (file.createNewFile()){ 
      System.out.println("File is created!"); 
      }else{ 
      System.out.println("File already exists."); 
      } 

     } catch (IOException e) { 
      e.printStackTrace(); 
    } 
    } 
} 

但现在我需要将创建文件夹和一个空文件(比如后缀名为.txt的.csv等不同的扩展名)的Java的功能和作用将在JavaScript工作。

任何人都可以给我一些上述两个例子的指导方针吗?我如何用Java编写函数并在JavaScript中运行它?

+0

文件有一个方法[mkdirs()](http://docs.oracle.com/javase/6/docs/api/java/io/File.html#mkdirs%28%29),它会创建缺少的子目录但我怀疑这不会对你有很大的帮助。尽管名称相似,但Java和Javascript是两种完全不同的语言,大多生活在不同的环境中。你需要澄清你需要什么,我特别困惑'现在bellow是在JavaScript中用来执行与上述功能相同的任务的java函数,我在iMacros中运行该.js文件。像一个魅力工作。“这似乎建议你以某种方式已经从JavaScript调用Java? – fvu

+0

“这似乎建议你以某种方式已经从JavaScript调用Java?”是的! 由于JavaScript无法写入文件,我使用Java并在JavaScript中调用它来写入文件。因此,上面有JavaScript调用的Java方法来打开和写入文件中的文本。所以我举了一个例子,说明我如何在JavaScript文件中使用Java,并按下Play来在iMacros中执行这项工作。所以从这个例子我需要在那个文件夹中创建文件夹和文件的功能。你现在明白了? – macroscripts

回答

2

此功能在iMacros的.js文件使用文件。它是一种JavaScript中调用的Java方法。

createFile("C:\\testingfolder","test.csv"); 

function createFile(folder,file) 
{ 

destinationDir = new java.io.File(folder).mkdirs(); 
file = new java.io.File(folder,file); 
file.createNewFile(); 
} 

该函数创建文件夹,并在其中创建一个文件。

2

我不会要求要充分认识这个问题,但这是如何确保一些目录存在,并在其中创建一个随机文件:

// make the dir and ensure the entire path exists 
File destinationDir = new File("c:\\whereever\you\want\that\file\to\land").mkdirs(); 
// make some file in that directory 
File file = new File(destinationDir,"whateverfilename.whateverextension"); 
// continue with your code 
if (file.createNewFile()){ 
    System.out.println("File is created!"); 
}else{ 
    System.out.println("File already exists."); 
} 
+0

我用你的例子,写了这个 destinationDir = new java.io.File(“c:\\ testingfolder”)。mkdirs(); 它的工作!我创建了一个新文件夹,但是当我写这个文件时 file = new java.io.File(destinationDir,“test.csv”);它并没有在该文件夹中创建新文件... 而当我写这个file.createNewFile();我有一个错误。 java.io.IOException:系统找不到指定的路径(错误代码:991) 几乎在那里! – macroscripts

+0

我找到了一个解决方案。你帮了我很多的人。真的。我会在这里写一个解决方案,如果有人需要它,他们可以使用它。 – macroscripts