2013-12-19 2 views
2

Я пытаюсь генерировать случайные числа как идентификаторы и сохранять их в файле, чтобы легко получить к ним доступ. В настоящее время я использую BufferedWriter, чтобы записать их в файл, но проблема в том, что я не слишком уверен в том, как найти, где я должен начать писать в файл. В настоящее время я пытаюсь использовать BufferedReader, чтобы выяснить, где должна записываться следующая строка, но я не уверен, как я должен сохранять это смещение или что-то еще, или как представлена ​​новая строка.Java - Использование BufferedWriter и BufferedReader,

void createIds(){ 
    File writeId = new File("peopleIDs.txt"); 
    try { 
     FileReader fr = new FileReader(writeId); 
     BufferedReader in = new BufferedReader(fr); 
     FileWriter fw = new FileWriter(writeId); 
     BufferedWriter out = new BufferedWriter(fw); 
     String line; 
     while((line = in.readLine()) != null){ 
      //How do I save where the last line of null is? 
      continue; 
     } 
    } catch (IOException ex) { 
     System.out.println(ex.getMessage()); 
    } 
} 
+0

использование дописывания() метод ... он добавляет данные в существующий файл ... – TheLostMind

+0

Будет ли добавить его к новая линия? или как я могу сделать это, чтобы @TheLostMind – bob

+0

не знал, что вы пытаетесь сделать, вы пишете в тот же файл, что и вы читаете, - правильно? –

ответ

3

Если вы просто хотите добавить идентификаторы в конец файла, используйте следующий FileWriter конструктор:

FileWriter fw = new FileWriter(writeId, true); 

Это открывает FileWriter в Append режим, позволяющий записывать выходные данные в уже существующий файл.

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

Для получения дополнительной информации см. JavaDoc для FileWriter.

-1

Вы можете сделать

try { 
     PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(new File("abc.txt"),true))); 
     writer.append("test"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
+1

Это то же самое, что и 'writer.write()'. Вы должны открыть файл в режиме добавления, если хотите добавить к нему (два конструктора аргументов 'FileWriter'). –

+0

Да, вы правильно забыли булевский флаг. Ред. –

0

Нам нужна дополнительная информация о самом файле: что вы ищете с помощью BufferedReader?

Если файл пуст/заново создан, вам совсем не нужен BufferedReader. Просто создайте PrintWriter и сохраните свои номера.

Я просто догадываюсь здесь, но я думаю, что реальная проблема заключается в том, что вы не знаете, как создавать случайные числа (так как это не отображается в вашем примере кода).

Вот пример кода, который будет писать случайных чисел в текстовый файл:

import java.io.PrintWriter; 
import java.io.BufferedWriter; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.util.Random; 

public class Example 
{ 
    public static void main(String[] args) 
    { 
     Random r; 
     PrintWriter writer; 

     r = new Random(); 

     try 
     { 
      writer = new PrintWriter(new BufferedWriter(new FileWriter("Examplefile.txt"))); 
      for (int i = 0; i < 10; i++) 
       writer.println(Integer.toString(r.nextInt(10))); 

      writer.close(); 
     } 
     catch (IOException e) 
     { 

     } 
    } 
} 
Смежные вопросы