如何在Scala

时间:2017-05-18 06:09:26

标签: java eclipse scala properties file-writing

我是Scala& amp;的新手。 Java,尝试使用它编写.properties文件,但它给出错误:

参考:https://www.roseindia.net/java/example/java/core/write-properties-file-in-java.shtml

以下是代码:

import java.io.File
import java.io.FileWriter
import java.io.BufferedWriter
import java.io.PrintWriter
import java.io.FileInputStream
import java.io.FileOutputStream
import java.util.Properties;


for ((k,v) <- jsonData.get.asInstanceOf[Map[String,String]]){
        var gdfileWriter : Writer = null;
        try{                    

          var prop : Properties = null;    
      prop = new Properties();

      var file : File = null;          
      file = new File(gdDestFileNameWithPath);

      var fos : FileOutputStream = null;
      fos = new FileOutputStream(file);

      prop.setProperty("database", "localhost");
      prop.setProperty("userName", "Naulej");
      prop.setProperty("Password", "naulej");
      prop.store(fos, "");

      fos.close();

//        gdfileWriter = new FileWriter(gdDestFileNameWithPath);
//        dfileWriter.write("");
//        gdfileWriter.append(gdJsonContent);
//        gdfileWriter.close();          
        } finally{
          try{gdfileWriter.close();}catch {
            case t: Throwable => t.printStackTrace() // TODO: handle error
          }
        }         
      }

file.setProperty("Password", "naulej");此行在eclipse中给出了语法错误,即value setProperty is not a member of java.io.File

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

这里有几件事。首先,您可以编写更多或更少的java,这是可以的,但是您应该将代码放入java文件中。无论如何使用scala中的java是有意的,通常没有问题。只需留意异常和null

关于scala,这是我的(可能不完整)列表:

  1. 分号是可选的,通常在scala代码中省略。
  2. 您可能希望查看try ... catch
  3. ,而不是使用scala.util.Try
  4. 看看你是否可以初始化&#34;昂贵&#34;循环外的组件(IO)。
  5. 尽量避免null。 ; - )
  6. 如果你真的需要变量(var)可能是&#34;未初始化&#34;看一下可用于此的Option类型。
  7. 以下是一个例子:

    import java.io.{ File, FileOutputStream }
    import java.util.Properties
    
    Try {
      val p  = new Properties
      val f  = new File(...)
      val fs = new FileOutputStream(f)
    
      // Set your properties and save them...
    
      p // Return the created properties in the end
    }
    

    这将导致Try[Properties],您可以用它来检查是否发生任何异常。