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