2014-12-15 18 views
5

Otwieranie plików w java wydaje się nieco trudne - w przypadku plików .txt należy użyć obiektu File w połączeniu z obiektem Scanner lub BufferedReader - dla obrazu IO należy użyć ImageIcon klasa - i jeśli ktoś jest dosłownie otworzyć dokument .txt (podobny do dwukrotne kliknięcie aplikacji) z java, kod ten wydaje się działać:Otwieranie dowolnego pliku z poziomu programu java

import java.io.*; 

public class LiterallyOpenFile { 
    public static void main(String[] args) throws IOException { 
     Runtime rt = Runtime.getRuntime(); 
     Process p = rt.exec("notepad Text.txt"); 
    } 
} 

nie jestem pewien, ale myślę, że inny plik -types/names może być podstawiony w nawiasie po exec - tak czy owak, planuję otworzyć określone pliki w JFileChooser, gdy użytkownik kliknie plik do otwarcia (kiedy użytkownik kliknie plik, ścieżka do pliku może być uzyskane za pomocą metody getSelectedFile()). Chociaż bardziej konkretnie szukam możliwości otwarcia pliku Arduino w IDE Arduino z programu java, takiego jak symulowane podwójne kliknięcie ... może coś takiego?

import java.io.*; 

public class LiterallyOpenFile { 
    public static void main(String[] args) throws IOException { 
     Runtime rt = Runtime.getRuntime(); 
     Process p = rt.exec("Arduino C:\\Arduino\\fibonacci_light\\fibonacci_light.ino"); 
    } 
} 

Doceniono punkt we właściwym kierunku.

+2

W systemie Windows można zawsze użyć 'start' otworzyć dowolny plik za pomocą domyślnej Stowarzyszenia na pliku. Więc zamiast 'notepad' lub' arduino' lub czego nie, zamień wszystkie na 'start'. –

Odpowiedz

4

Czy próbowałeś tego? Jeśli istnieje zarejestrowany program dla twojego pliku w Windows, to powinno działać. (tj. domyślna aplikacja powinna otworzyć plik)

Desktop desktop = Desktop.getDesktop(); 
desktop.open(file); 

Parametr pliku jest obiektem File.

Link to API

Link to use cases and implementation example of the Desktop class

+1

@Woodrow Nie jestem pewien, czy jesteś sarkastyczny w tej odpowiedzi, ale o ile rozumiem twoje pytanie, to jest poprawna odpowiedź. przeczytaj dokumentację klasy Desktop: https: //docs.oracle.com/javase/7/docs/api/java/awt/Desktop.html –

+0

@Christian R. Nie był sarkazmem, tylko czymś dziwnym z udziałem plików arduino : http://imgur.com/xQaYvy5 oznacza, że ​​sam plik arduino musi znajdować się wewnątrz folderu wewnątrz pulpitu - dzięki czemu mogę użyć klasy Desktop, aby otworzyć folder zawierający plik, ale nie bezpośrednio. i dziękuję, planuję przeczytać na lekcji Desktop. – Woodrow

+2

miksujesz folder "Desktop" (jak nazywa się go w Windows i innym OS) z nazwą klasy, ale dla twojego wyzwania pasuje idealnie - plik nie musi znajdować się w folderze Desktop - parametr może być dowolny obiekt pliku, który jest: niezerowy, plik istnieje, można go odczytać za pomocą ograniczeń bezpieczeństwa i istnieje skojarzona aplikacja, która może zostać uruchomiona z plikiem - jeśli pobierzesz obiekt pliku z parametru 'JFileChooser.getSelected()' as, sam plik należy otworzyć z powiązaną aplikacją –