Как вставить новую строку в текстовый файл для Blackberry с помощью OutputStream? - PullRequest
1 голос
/ 07 сентября 2011

Я пытаюсь создать приложение, которое может записывать текст в текстовый файл в Blackberry. Я могу написать текст внутри текстового файла, но когда я пытаюсь написать новую строку текста, он просто перезаписывает текст, в который я пишу ранее. Может кто-нибудь мне помочь? Я пытаюсь искать форумы, но ни у кого нет конкретного решения, которое мне нужно.

Ниже мой код:

package filepackage;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Vector;

import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;

import net.rim.device.api.io.File;
import net.rim.device.api.system.Application;

public class WritingText extends Application{
    /**
     * Entry point for application
     * @param args Command line arguments (not used)
     */ 
    public static void main(String[] args){

        WritingText app = new WritingText();
        app.setAcceptEvents(false);

        Vector v = new Vector();
        v.addElement("Test2seconds.mp3");
        v.addElement("Test2seconds2.mp3");
        v.addElement("Test2seconds3.mp3");
        v.addElement("Test2seconds4.mp3");
        v.addElement("blind_willie.mp3");

        for(int i=0;i<v.size();i++){
        try 
        {
          FileConnection fc = (FileConnection)Connector.open("file:///SDCard/newfile.txt");
          // If no exception is thrown, then the URI is valid, but the file may or may not exist.
          if (!fc.exists())
          {
              fc.create();  // create the file if it doesn't exist
          }
          OutputStream outStream = fc.openOutputStream(); 
          outStream.write(((String) v.elementAt(i)).getBytes());

          String br = "\r\n";
          outStream.write (br.getBytes ());

          outStream.close();
          fc.close();
         }
         catch (IOException ioe) 
         {
            System.out.println(ioe.getMessage() );
         }
       }
    }
}

Пожалуйста, помогите мне. (

1 Ответ

3 голосов
/ 07 сентября 2011

Похоже, вы создаете новый файл для каждого элемента в векторе. Попробуйте переместиться в цикле, чтобы окружить только операции записи:

.----
|     try 
|     {
|       FileConnection fc = (FileConnection)Connector.open(...);
|      // If no exception is thrown, then the URI is valid
|      if (!fc.exists())
|      {
|          fc.create();  // create the file if it doesn't exist
|      }
|      OutputStream outStream = fc.openOutputStream(); 
|
'-->  for(int i=0;i<v.size();i++){

      outStream.write(((String) v.elementAt(i)).getBytes());

      String br = "\r\n";
      outStream.write (br.getBytes ());
.--> }
|
|      outStream.close();
|      fc.close();
|     }
|     catch (IOException ioe) 
|     {
|        System.out.println(ioe.getMessage() );
|     }
|   }
'--
...