2015-08-10 1 views
1

Я пытаюсь использовать PrintWriter для печати в предопределенный .txt файл с именем output.txt. Я не пробовал поставить оба файла и FileWriter внутри PrintWriter, и не повезло. Я тоже закрываю его. Самая странная его часть заключается в том, что другое аналогичное использование PrintWriter в моем другом коде, кажется, работает отлично (второе). Может ли кто-нибудь щелкнуть мне несколько указателей/подсказок?PrintWriter, кажется, не пишет в файл, хотя я его закрываю

public static void main(String[] args) throws IOException{ 

    if(args.length <4){ 
     return; 
    }else{ 
     String patternFileN = args[0]; 
     String sequenceFileN = args[1]; 
     int numOfSeqs = Integer.parseInt(args[2]); 
     int pattInd = Integer.parseInt(args[3]); 
     if(numOfSeqs <= 0){ 
      return; 
     } 
     String pattern; 
     String[] txtSequence = new String[numOfSeqs]; 
     PrintWriter outFile = null; 
     try{ 

      String outFileN = "output.txt"; 
      outFile = new PrintWriter(new File(outFileN)); 

      for(int seqInd = 0; seqInd < numOfSeqs; seqInd++){ 
       int offset = RKscanner.seqSearch(txtSequence[seqInd]); 
       if(offset < txtSequence[seqInd].length()){ 
        //outFile.println(pattInd + " " + seqInd); 
        outFile.println("nigaaaa"); 

       } 
      } 
     }catch(IOException e){ 
      e.printStackTrace(); 
      System.err.println("files couldn't be opened"); 
     }finally{ 
      outFile.close(); 
     } 

    } 
} 

Этот код работает отлично:

public static void main(String[]args) throws IOException{ 
    int letters = 4; 
    int pattLength, possNum; //number of possible sequences 

    try{ 
     if(args.length <=1){ 
      System.err.println("please specify output filename & lengths of patterns to be generated"); 
      System.err.println("---try: java patternGen pattern.txt 5"); 
     }else{ 
      String fileName = args[0]; 
      PrintWriter outFile = new PrintWriter(new FileWriter(fileName)); 
      pattLength = Integer.parseInt(args[1]); 
      possNum = (int)Math.pow(letters, pattLength); //possible number of combinations without wildcards. 
      //Nucleotide[][] patternBuild = new Nucleotide[possNum][pattLength];//the built pattern to be used for consructor. 
      StringBuilder sb = new StringBuilder(pattLength); 
      for(int i = 0; i < possNum; i++){ 
       sb.setLength(0); 
       StringBuilder alphToNuc = new StringBuilder(0); 
       String sbStore = sb.toString(); 
       //...then string builders populated 
       //System.out.println("alphabet: "+sb); 
       outFile.println(alphToNuc); 
       System.out.println(alphToNuc); 
      } 
      outFile.close();  
     } 

    }catch(IOException e){ 
     e.printStackTrace(); 
     } 
} 

ответ

0

ИСПРАВЛЕНО!

Проблема заключалась в том, что я запускал эти java-файлы с помощью сценария bash в цикле, поэтому файл будет перезаписываться. Когда я открываю и записываю в эти файлы в java-файлы.

Извините за нерешенно обсуждаемый вопрос