Skip to content

Instantly share code, notes, and snippets.

@takungsk
Created June 21, 2012 05:53
Show Gist options
  • Save takungsk/2964103 to your computer and use it in GitHub Desktop.
Save takungsk/2964103 to your computer and use it in GitHub Desktop.
キーを押したらテキストファイルの中身をクリアするプログラム
import java.io._
case class Args(
filename: String
)
object Main {
def main(args: Array[String]) {
val argsOption = parseArgs(args.toList)
var ok = true
// end が入力されるまでループする。
// それ以外のキーが押されたときはファイルをクリア
while( ok ) {
println("Press Enter Key DO CLEAR FILE, if you want to stop, Input \"end\" ")
val ln = readLine()
ok = ln != "end"
if(ok) clearLog(argsOption.get.filename)
}
}
// ファイルをクリアする処理。
// ただ開いているだけ
def clearLog(filename: String) {
writeFile(new File(filename)){writer => {}}
}
def writeFile[T](file: File)( write: PrintWriter => T):T = {
val writer = new PrintWriter(file)
try {
write(writer)
} finally {
writer.close();
}
}
// 引数でファイル名を取得する。
// デフォルトのファイル名は sm.log
def parseArgs(args: List[String]): Option[Args] = {
var fileName = "./takuya71.log"
@scala.annotation.tailrec
def parseArgsHelper(args: List[String]): Args = {
args match {
case "-f" :: x :: rest => {
fileName = x
parseArgsHelper(rest)
}
case _ => Args(fileName)
}
}
try {
Some(parseArgsHelper(args))
}
catch {
case _ => None }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment