Gerçekten nasıl okunur metin Java sınıf dosya
SINIF sistemi değişken içinde yer alan bir metin dosyası okumak için çalışıyorum. Kullanıcı bir değişken.
Dosyaya giriş akışı aşağıdaki gibi yapmaya çalışıyorum:
Dosya dizini (D:\myDir)SINIF yer ve denemek aşağıda:
InputStream in = this.getClass().getClassLoader().getResourceAsStream("SomeTextFile.txt");
InputStream in = this.getClass().getClassLoader().getResourceAsStream("/SomeTextFile.txt");
InputStream in = this.getClass().getClassLoader().getResourceAsStream("//SomeTextFile.txt");
SINIF içinde dosyanın tam yolunu (D:\myDir\SomeTextFile.txt)ve yukarıdaki kodları 3 aynı satırları deneyin.
Ama ne yazık ki bunlardan HİÇBİRİ çalışmıyor ve her zaman 10 ** benim İnputStream içine null alıyorum.
CEVAP
Bir sınıf aynı classloader ile yüklü gelen sınıf, dizin,, birini kullanmak gerekir:
// From ClassLoader, all paths are "absolute" already - there's no context
// from which they could be relative. Therefore you don't need a leading slash.
InputStream in = this.getClass().getClassLoader()
.getResourceAsStream("SomeTextFile.txt");
// From Class, the path is relative to the package of the class unless
// you include a leading slash, so if you don't want to use the current
// package, include a slash like this:
InputStream in = this.getClass().getResourceAsStream("/SomeTextFile.txt");
Eğer bu çalışma değilse, bu bir şeylerin yanlış olduğunu gösteriyor.
Yani, örneğin, bu kodu alın:
package dummy;
import java.io.*;
public class Test
{
// This code is nasty and not exception safe. Just demo code!
public static void main(String[] args) throws Exception
{
InputStream stream = Test.class.getResourceAsStream("/SomeTextFile.txt");
System.out.println(stream != null);
stream = Test.class.getClassLoader()
.getResourceAsStream("SomeTextFile.txt");
System.out.println(stream != null);
}
}
Ve bu dizin yapısı:
code
dummy
Test.class
txt
SomeTextFile.txt
Ve (bir Linux kutusu üzerinde olduğum için Unıx yol ayırıcı kullanarak):
java -classpath code:txt dummy.Test
Sonuçlar:
true
true

Nasıl okunur bir metin Python string b...
Nasıl bir dosya oluşturmak ve Java ile...
Nasıl&; derleme quot&; Java sınıf dosy...
İyi bir metin okumak için Java dosya y...
Nasıl Java'da varolan bir dosyaya meti...