2012-06-29 5 views
0

java fileWriter() 함수를 사용하고 있습니다. Windows 컴퓨터에서는 작동하지만 Linux에서는 작동하지 않습니다.java의 fileWriter() 함수는 Linux 유형의 시스템에서 작동합니까?

그래서 fileWriter() 함수가 Windows에서만 작동하는지 또는 다른 문제가 있는지 알고 싶습니다. 사전에

덕분에 Enamul

+8

Java는 멀티 플랫폼입니다. 그리고 FileWriter는 클래스가 아니라 함수입니다. 코드를 공유하고 문제가 무엇인지 알려주시겠습니까? –

+0

또한 Linux만으로는 충분하지 않다는 말입니다. 우분투, 레드햇 등을 지정해야합니다. – ControlAltDel

답변

3

당신은 FileWriter 클래스를 참조하고 있습니까? 그렇다면 두 시스템에서 올바르게 작동합니다. 그렇지 않으면 fileWriter() 함수의 출처를 알려줘야합니다.

7

파일 IO가 Linux에서 작동하지 않는다고 말하는 유사한 보고서를 보았습니다. 이 문제는 거의 항상 Windows의 디렉터리 경로 구분 기호를 사용하는 것으로 끝났습니다.

String filePath = "my\\file\\path\\File.txt"; // only works on windows 
String filePath = "my/file/path/File.txt"; // works on all platforms 

후자를 사용하고 있는지 확인하십시오. 적어도 Windows에서 (심지어 Java 내에서) 작동합니다!

+0

Jesse Webb에게 감사드립니다. 제가 직면 한 문제입니다. –

+0

@EnamulHaque - 내 대답이 문제를 해결하는 데 도움이 되었다면, 내 대답의 왼쪽에있는 작은 체크 표시를 클릭하여 올바른 것으로 받아 들여야합니다. 다행히 도울 수있어. :) –

0

FileWriter 클래스는 두 시스템에서 모두 작동하지만 Linux와 Windows는 다른 경로 규칙을 사용한다는 점에 유의하십시오. UNIX 기반 시스템에서는 디렉토리와 파일을 분리 할 때 슬래시 '/'를 사용하고 Windows에서는 백 슬래시 '\' 그들을 분리하십시오. 따라서 'home'이라는 디렉토리에 'file.txt'라는 파일이 있다면 리눅스에서는 /home/file.txt이고 Windows에서는 C : \ home \ file.txt가 될 것입니다. Windows의 C : 드라이브

FileWriter를 만들 필요가 거의없는 File 클래스에는 실행중인 시스템에 의해 결정되는 4 개의 정적 필드 인 separatorChar, pathSeparatorChar, separator 및 pathSeparator가 있습니다. pathSeparator는 Linux의 경우 "/"이고 Windows의 경우 "\"입니다. 이 두 필드를 참조하십시오 (File 형식의 객체를 인스턴스화 할 필요조차 없습니다. 두 시스템에서 파일의 경로를 만들어야하는 경우 필드가 정적이기 때문에 File.separatorChar 만 사용할 수 있습니다).

관련 문제