2016-04-12 2 views
2

Я пытаюсь написать неявный класс append, который имеет метод append. Метод должен добавить String в конец файла.Неявный метод добавления не работает должным образом

 def AppendToFile(file: File, str: String): Unit = { 
    val append = new FileWriter(file) 
    try 
     append.append(str).append("\n") 
    finally 
     append.close   
    } 
    implicit class RichAppend(p: Path) { 
     def append(fileName: String) = AppendToFile(p.toFile,fileName) 
} 

Однако, когда я запускаю свой тест, я получаю сообщение об ошибке.

"[Second line 
[info] ] 
[info] " did not equal "[line_1 
[info] Second line] 

Это испытание я бегу:

test("Paths should have a .append method") { 
    val pth = Paths.get("test.txt") 
    val data = " line_1\nSecond" 
    try { 
    pth.append(pth,"line_1\n") 
    pth.append(pth,"Second line\n") 
    assert(new String(Files.readAllBytes(pth)) == "line_1\nSecond line\n") 
    } 
    finally { 
     Files.deleteIfExists(pth) 
    } 
} 
+1

Ваш метод 'append' принимает два параметра, и вы только передаете их. – nattyddubbs

+0

Я изменил метод. Однако теперь я получаю другую ошибку – rocketman

+0

Какая ошибка? –

ответ

1

файла автор должен быть в режиме добавления. new FileWriter(file, true);

Также метод append поставит дополнительный \n там, как он в настоящее время написан.