2015-07-08 2 views
0

Я хотел бы знать, как я могу открыть и отобразить .txt в приложении Java. .txt связан с приложением, и когда вы нажимаете на него, приложение открывается, но файл не может быть показан, если не путем передачи фиксированного маршрута.открыть и прочитать произвольный файл .txt с исполняемым java-приложением, не зная, что rute .txt

Мне нужно показать это, но только если файл .txt находится в том же каталоге, что и файл jar, и запускайте приложение только в том случае, если оно напрямую. Прямой доступ с .txt открывает приложение, но не более того.

У меня есть этот код, вы видите, что путь проходит по ним напрямую. Я хочу, чтобы вы взяли из .txt.

FileReader f = new FileReader("archivo.txt"); 
    BufferedReader b = new BufferedReader(f); 

    String linea_cliente = b.readLine(); 
    StringTokenizer datos_cliente = new StringTokenizer(linea_cliente,";"); 
    while(datos_cliente.hasMoreTokens()){ 
     pedido.setText(datos_cliente.nextToken()); 
     id_cliente.setText(datos_cliente.nextToken()); 
     nom_cli.setText(datos_cliente.nextToken()); 
     dir_cli.setText(datos_cliente.nextToken()); 
     cp_cli.setText(datos_cliente.nextToken()); 
     loc_cli.setText(datos_cliente.nextToken()); 
     prov_cli.setText(datos_cliente.nextToken()); 
     pais_cli.setText(datos_cliente.nextToken()); 
     obs_cli.setText(datos_cliente.nextToken()); 
    } 

Извините за мой плохой английский. Спасибо;)

+0

Что вы подразумеваете под «запускать приложение только если напрямую» и «прямой доступ с .txt»? – JimmyB

+0

Вы пытаетесь отобразить .txt-файл, но только чтение строки из файла? Это было ваше намерение? – Rahul

+0

Возможно, вы захотите проверить свойства системы: http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html и посмотреть, можете ли вы найти корень относительного пути, который вы хотите от одного из этих – ControlAltDel

ответ

1
FileReader f = new FileReader("archivo.txt"); 

Подразумевается, что archivo.txt является относительным путем. Относительное значение по отношению к текущему исполняемому файлу. Это подразумевается .\archivo.txt

Вы можете поместить его в подкаталог и использовать относительный путь, например .\myfiles\textfiles\archivo.txt, где .\ - это местоположение вашей банки.

Если вы хотите ввести много разных текстовых файлов, и вы не знаете, где они будут, вы можете использовать аргументы. В командной строке это будет выглядеть так:

> java jar myproj.jar C:\test\foo\archivo.txt 

И получить к нему доступ в main() использования:

String filePath = args[0] 
FileReader f = new FileReader(filePath); 

Если вы хотите, чтобы быть портативными accross многие системы вы должны воспользоваться environment variables чтобы получить базовый путь, а затем привязать маршрут к вашему .txt-файлу к базе.

Извините, было немного неясно, о чем вы просили, поэтому я рассмотрел несколько распространенных случаев, сообщите мне, если вам нужно разъяснение.

+0

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

+0

Отъезд [это сообщение] (http://stackoverflow.com/questions/9632793/use-a-java-application-as-the-default-program-for-a-particular-file-type) тогда. Он точно описывает, что вы пытаетесь сделать. – amza

+0

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

Смежные вопросы