0

我正在使用此代码从 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 字节。我尝试从同一个站点下载另一个不同格式的文件,没有任何问题。

4

3 回答 3

0

完成后不要忘记刷新并关闭写入器!

bw.flush();
bw.close();
于 2013-01-21T16:16:46.207 回答
0

尝试在最后关闭文件。

 while(fasta.hasNextLine()){

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

}
bw.close();
于 2013-01-21T16:17:01.697 回答
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
于 2020-01-21T21:26:19.277 回答