下载Fasta文件并将其写入文本文件

时间:2013-01-21 16:11:49

标签: java file-io pdb fasta

我正在使用此代码从pdb网站下载fasta序列文件。 pdb id是字符串protid。

import java.io.*;
import java.net.URL;
import java.util.Scanner;

public class Trialoffile
{

    public static void main(String[] args){

        InputStream url;

        String protID="2ly4";


        try{


                url = new URL("http://www.rcsb.org/pdb/download/downloadFile.do?fileFormat=FASTA&compression=NO&structureId="+protID).openStream();
                Scanner fasta = new Scanner(url);

                BufferedWriter bw= new BufferedWriter(new FileWriter(protID+".txt", true));




                 //output file is prepared.

                while(fasta.hasNextLine()){

                bw.write(fasta.nextLine()+"\n");

                }
                }





        catch (Exception e)
        {
            System.err.println("File input error on:"+protID);
        }
    }

}

我没有收到错误,但写入的文件是0字节。我尝试从同一个站点下载另一个不同格式的文件,没有任何问题。

3 个答案:

答案 0 :(得分:0)

完成后不要忘记刷新并关闭作家!

bw.flush();
bw.close();

答案 1 :(得分:0)

尝试在最后关闭文件。

 while(fasta.hasNextLine()){

      bw.write(fasta.nextLine()+"\n");

}
bw.close();

答案 2 :(得分:0)

多年后,我得到了python用户的答案(这也可能对Java有所帮助...):

protein_id = "6T1T"
url = 'https://www.rcsb.org/pdb/download/downloadFastaFiles.do?structureIdList=' + protein_id + '&compressionType=uncompressed'
response = requests.get(url)
fasta_text = response.text