1

首先,我是 iMacros 脚本编写者。这是用于编写文件的 java 函数(不完全完成,但你会明白的)

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

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

下面是 JavaScript 中用于执行与上述函数相同任务的 java 函数,我在 iMacros 中运行该 .js 文件。奇迹般有效。

//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 函数来在硬盘位置创建文件和文件夹,我找到了这个。

包 com.mkyong.file;

导入java.io.File;导入 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 中运行它?

4

2 回答 2

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.");
}
于 2012-12-07T00:37:59.517 回答
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();
}

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

于 2012-12-07T00:59:39.620 回答