2016-03-23 29 views
0

Bu kodu tutulması yoluyla çalıştırmayı denediğimde, iyi çalışıyor, ancak "java MainClass> result.txt kullanarak CMD'yi çalıştırmayı denediğimde "Bir FileNotFoundException alıyorum. Bu, söz konusu kod:Girdi ve çıktı dosyalarını kullanarak CMD aracılığıyla bir java programı çalıştırmaya çalışırken FileNotFoundException alma

import java.io. ; import java.util.;

public class MainClass {

static int cellNumber; 
static int freeSpace; 
static int randomResult; 
static int chosen; 
static int choiceSize; 

public static void main(String[] args) 
{ 
    Scanner in = null; 
    try 
    { 
     in = new Scanner(new FileReader("C:\\users\\Alon\\workspace\\ex2temp\\bin\\input.txt")); 
     FileWriter fw = new FileWriter("C:\\users\\Alon\\workspace\\ex2temp\\bin\\result.txt"); 
     PrintWriter pw = new PrintWriter(fw); 
     chosen = getRandomInt(); 
     pw.printf("Choice=%d", chosen); 
     pw.println(); 
     while (in.hasNext()) 
     { 
      cellNumber = in.nextInt(); 
      freeSpace = in.nextInt(); 

      if (sizeOfChosen(chosen) <= freeSpace) 
      { 
       pw.printf("%d", cellNumber); 
       pw.println(); 
       break; 
      } 
     } 
     if (!in.hasNext()) 
     { 
      pw.println("Cannot allocate memory"); 
      pw.println(); 
     } 
     pw.close(); 
     fw.close(); 
     in.close(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
} 

Herkes Lütfen yardımcı olabilir? Teşekkürler :)

+1

Sorunuzdaki yığın izini ekleyin. – user2004685

+0

'' C: \\ kullan \\ ... \ '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''] 'ı gizlemeyi deneyin. –

+0

Bu, CMD'de aldığım yığın izlemesidir: java.io.FileNotFoundException: C: \ users \ Alon \ workspace \ ex2temp \ bin \ result.txt (Başka bir işlem tarafından kullanıldığından işlem dosyaya erişemiyor) java.io.FileOutputStream.open0 (Native Method) java.io.FileOutputStream.open (Bilinmeyen Kaynak) adresinden java.io.FileOutputStream adresinde. Java.io.FileOutputStream adresinde (Bilinmeyen Kaynak) . Java.io.FileWriter adresinde (Bilinmeyen Kaynak) . (Bilinmeyen Kaynak) at MainClass.main (MainClass.java:20) –

cevap

0

Dosyaları, Eclipse'in çıktı klasörü olduğunu düşündüğüm ".../ext2temp/bin/.." dosyaları kullanıyorsunuz. Orijinal dosyalara sahip olduğunuz yolu kullanın.

+0

Sınıf dosyasını ve girdi dosyasını bir seviye yukarı taşımaktan ve oradan çalıştırmayı denemek mi istiyorsunuz? bin dizininin dışında? –

+0

sınıf dosyası değil. Input.txt ve result.txt hakkında konuşuyorum – Ulises

+0

İstisna engellendi !! Teşekkürler!! Input.txt bir seviye yukarı taşıdım. Result.txt çalıştırdıktan sonra oluşur, ancak şimdi, "java MainClass > result.txt" CMD'de çalıştırdığımda, boş bir sonuç.txt dosyasını geri alırken, Eclipse'den çalıştırdığımda, result.txt düzgün içindeki veriler. –

0

Aynı dosya üzerinde sürekli bir yazı oluşturmak için varolan dosyaya metin eklemek zorunda kaldım. FileWriter'i oluştururken "true" ekledim. Ardından, FileWriter nesnesini alan yeni bir BufferedWriter oluşturdum ve son olarak PrintWriter alma nesnesini bufferredWriter olarak değiştirdim. Bu şekilde, programı her çalıştırdığımda, eskilerin altında 2 yeni veri satırı oluşturuluyor ve bir "günlük dosyası" aldım.