2015-04-25 3 views
3

Привет, я новичок в программировании, как мне импортировать TXT-файл? Мой код не может найти файл, есть ли какой-либо конкретный каталог, в который он должен быть помещен?Как импортировать файл .txt в Scala

Мой код:

object Zettel01 extends App { 
import scala.io.Source 

object Suchtest { 
    val gesch = Source.fromFile("DieUnendlicheGeschichte.txt").getLines() 
    for (w <- gesch) println(w) 
} 
} 

Я попробовал другой код, но проблема всегда то же самое, я не могу найти файл .txt ...

Заранее спасибо за любую помощь Flurry1337

+0

Хорошо ... Вы знаете ... В глобальном контексте, если вы укажете свой адрес как «Плоский № 10», то никто не сможет вас найти. Вам нужно будет указать свой полный адрес. Точно так же ... вам нужно будет предоставить полный путь к вашему файлу. Что-то вроде - «c: \ Users \ yourname \ documents \ YourFileName.txt». –

+0

Пробовал, что еще не повезло найти файл ... – flurry1337

+0

Помимо каждого фрагмента кода примера, который я нашел для импорта .txt-файлов, никогда не использовался какой-либо путь, они всегда просто указывали имя файла. – flurry1337

ответ

2

Каждая программа Scala, которую вы запускаете на своем компьютере, в конечном счете является процессом java. Этот процесс будет иметь «рабочий каталог», как и каждый процесс на вашем компьютере. По умолчанию рабочий каталог является рабочим каталогом процесса, который его запускал, то есть текущего каталога интерпретатора командной строки или командной строки в момент запуска вашей программы.

Теперь это означает, что важно знать, как именно вы начинаете свою программу. Если вы используете командную строку и запускаете свою программу в java MyCoolProgram, то текущий каталог оболочки станет рабочим каталогом программы. Если вы используете IDE, например Eclipse или IntelliJ IDEA, они обычно используют папку проекта вашего проекта IDE в качестве рабочего каталога процесса, который они запускают.

Существует простой способ быстро найти его: вы всегда можете распечатать результат new java.io.File(".").getAbsolutePath(). Это напечатает полный путь к рабочему каталогу. Например, вы можете написать небольшую программу Scala, например:

object PrintWorkingDirectory extends App { 
    println(new java.io.File(".").getAbsolutePath()) 
} 

и запустите его. На консоли вы должны найти полный путь к рабочему каталогу программы. Если вы поместите файл с именем «DieUnendlicheGeschichte.txt» в этот каталог, ваша программа найдет этот файл под таким именем.

Конечно, вам не нужно выгружать все файлы в этот каталог. Вы можете создавать подкаталоги, чтобы лучше упорядочить файлы. Например, вы можете поместить свой файл в путь, например «resources/text/DieUnendlicheGeschichte.txt».

Наконец, я хотел бы указать, что существует также другой способ связать файлы ресурсов с вашей программой и загрузить их. Идея состоит в том, что вы помещаете в один большой файл код (файлы классов), а также такие ресурсы, как тексты, изображения, файлы CSV, файлы XML и тому подобное. Это будет JAR-файл. Затем вы можете использовать ClassLoader для доступа к ресурсам внутри JAR-файла по URL-адресу.

Объяснение этого процесса в деталях выходит за рамки этого вопроса; это просто отбрасывает пару ключевых слов, которые вы (или другие читатели) можете искать, если они захотят найти более продуманный процесс.

+0

wow спасибо большое, это решило мою проблему – flurry1337

+0

@ flurry1337 Замечательно, что это помогло. Если вы считаете, что это является ответом на проблему, не забудьте отметить мой ответ как «ответ» (зеленый тик). – Madoc

0

System.getProperty («user.dir») также сообщает вам рабочий каталог.