2016-01-20 146 views
-4

問題是我有四個不同的數組列表。我想根據用戶給定的輸入插入特定數組列表類的數據。 我該怎麼做?如何在java中編寫文本文件的特定位置

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

public class acquaintances 
{ 
    public static void main(String args[]) 
    { 
    Arraylist<relative>re=new Arraylisrt<relative>(); 
    Arraylist<personalfriend> pf=new Arraylist<personalfriend>(); 
    Arraylist<casualfriend> cf=new Arraylist<casualfriend>(); 
    Arraylist<professionalfriend> prf=new Arraylist<professionalfriend>(): 

這些是不同的陣列列表。

Iwant寫的順序不同acquantances信息的文本文件

休閒朋友1

休閒FRIEND2相對

........

relative 2

......

personalfriend1

個人FRIEND2

個人friend3

...........

professionalfriend1

professionalfriend2

.... ..............

此外,如果我刪除特定的細節。那麼我應該如何從文件中刪除特定

詳細

 String name=null,number=null,email=null; 
    File file = new File("Readme.txt"); 
    if (!file.exists()) { 
      file.createNewFile(); 
     } 

    Scanner sc=new Scanner(System.in); 

    int ch=0,chu=0; 
    String jaff=null,baff=null; 
    FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
    BufferedWriter bw = new BufferedWriter(fw); 

    String cmet_why=null,cinfo=null,cdate=null; 

    while(1) 
    { 
     System.out.println("Enter name,number,email of acquaintance"); 
     name=sc.nextLine(); 
     number=sc.nextLine(); 
     email=sc.nextLine(); 
     System.out.println("1.Create 2.Delete 3.Display 4. DisplayAll 5.Search); 
     ch=sc.nextInt(); 
     jaff=sc.nextLine(); 
     Switch(ch): 
     { 
      case 1: 
      { 
       System.out.println("1.Casual friend 2.relative 3.personal friend 4. Professional friend"); 
       chu=sc.nextInt(); 
       baff=sc.nextLine(); 
       if(chu==1) 
       { 
        System.out.println("Enter reasonto meet ,dateof meeting,info"); 
        cmet_why=sc.nextLine(); 
        cdate=sc.nextLine(); 
        cinfo=sc.nextLine(); 
        casualfriend cfriend=new casualfriend(name,number,email,cmet_why,cdate,cinfo); 

在這裏,我添加了類對象,以休閒的好友列表

,我想將其寫入文本文件中的位置。

問題在於它位於文本文件的中間。

在此之後,我必須寫親戚,個人朋友,專業朋友。由線

    cf.add(cfriend); 

       } 
      } 

     } 
    } 


} 

}

信息行

有不同開關的情況。我想按順序寫這些。

+1

刪除文件,並以您喜歡的任何順序從頭開始重新編寫更新的信息? –

+1

你的問題不是很清楚。你究竟需要什麼?請注意,您不能簡單地插入或刪除文件中隨機位置的文本。您必須將新數據寫入另一個文件,然後重命名它。 – 5gon12eder

+1

謝謝。我明白了。 –

回答

0
public static void writeWithRandmoAccessFile(String content, String filePath) { 

     try (RandomAccessFile randomAccessFile = new RandomAccessFile(new File(filePath), "rw")) { 

     // move the cursor to the end of the file 
     // you can move the cursor to any position inside the file or to write at random positions 
     randomAccessFile.seek(randomAccessFile.length());//random position 

     randomAccessFile.write(content.getBytes()); 

     // alternatively you can use randomAccessFile.writeChars(content) 
     // or randomAccessFile.writeUTF(content); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 
相關問題