- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如果我连接到看起来像是 Apache 服务器的东西,下面的代码效果很好,但是当我尝试连接到我的 .Net 服务器时,它会引发错误。我猜这是一个 header 要求,但无论我尝试什么似乎都无法获得成功的响应。
public String Download(String Url)
{
String filepath=null;
try {
//set the download URL, a url that points to a file on the internet
//this is the file to be downloaded
URL url = new URL(Url);
//create the new connection
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//set up some things on the connection
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
//and connect!
urlConnection.connect();
//set the path where we want to save the file
//in this case, going to save it on the root directory of the sd card.
File SDCardRoot = Environment.getExternalStorageDirectory();
//create a new file, specifying the path, and the filename
//which we want to save the file as.
String filename= "effortback.png"; // you can download to any type of file ex:.jpeg (image) ,.txt(text file),.mp3 (audio file)
Log.i("Local filename:",""+filename);
File file = new File(SDCardRoot + "/",filename);
//=====================================
if(file.createNewFile())
{
file.createNewFile();
}
//=====================================
//this will be used to write the downloaded data into the file we created
FileOutputStream fileOutput = new FileOutputStream(file);
//this will be used in reading the data from the internet
InputStream inputStream = urlConnection.getInputStream();
//=====================================
//this is the total size of the file
int totalSize = urlConnection.getContentLength();
//variable to store total downloaded bytes
int downloadedSize = 0;
//=====================================
//create a buffer...
byte[] buffer = new byte[2048];
int bufferLength = 0; //used to store a temporary size of the buffer
//now, read through the input buffer and write the contents to the file
while ( (bufferLength = inputStream.read(buffer)) > 0 ) {
//add the data in the buffer to the file in the file output stream (the file on the sd card
fileOutput.write(buffer, 0, bufferLength);
//add up the size so we know how much is downloaded
downloadedSize += bufferLength;
//this is where you would do something to report the prgress, like this maybe
Log.i("Progress:","downloadedSize:"+downloadedSize+"totalSize:"+ totalSize) ;
}
//close the output stream when done
fileOutput.close();
if(downloadedSize==totalSize) filepath=file.getPath();
//catch some possible errors...
} catch (MalformedURLException e) {
e.printStackTrace();
Log.i("URL-ERROR:",e.toString());
} catch (IOException e) {
filepath=null;
e.printStackTrace();
Log.i("IO-ERROR:",e.toString());
}
Log.i("filepath:"," "+filepath) ;
return filepath;
}
错误范围:
java.io.FileNotFoundException //I always get this with either one of the below
org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
//or this one below
libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionTmpl.java:186)
似乎无论我尝试什么,我都无法让它工作。同样,如果我尝试从 Google 或其他一些网站下载图像,它会起作用,但不是全部,但绝对不是我的 (.Net)。我在这里想念什么?请帮忙。
最佳答案
如果您的服务器返回 >= HTTPStatus.BAD_REQUEST
(400)。你应该先检查状态码,看看你需要读什么流。
int status = connection.getResponseCode();
if(status >= HttpStatus.SC_BAD_REQUEST)
in = connection.getErrorStream();
else
in = connection.getInputStream();
InputStream inputStream;
int status = urlConnection.getResponseCode();
if (status != HttpURLConnection.HTTP_OK) {
inputStream = urlConnection.getErrorStream();
}
else {
inputStream = urlConnection.getInputStream();
}
关于android - HttpURLConnection java.io.FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16255823/
我在 VisualStudio2010 中创建了小的 Windows Forms progs,只是为了业余爱好。释放它们后,我使用 .exe 文件在其他 PC 上运行它们,而无需 进行任何安装。这些
我正在尝试使用AvroParquetWriter将Avro格式的文件转换为 Parquet 文件。我加载架构 val schema:org.apache.Schema = ... getSchema(
我正在尝试使用 Image.IO.Write() 保存图像;我基本上从 here 复制了标准代码使用 lwjgl 截取屏幕截图。我唯一做的就是使用现有目录作为保存路径来初始化文件。 当我尝试保存图像时
错误: E/BitmapFactory﹕ Unable to decode stream: java.io.FileNotFoundException: /file:/storage/sdcard0/
如果这是基本的,我很抱歉,我错过了一些简单的东西。我正在尝试运行下面的代码以遍历文件夹中的文件并将所有以特定字符串开头的文件合并到数据框中。所有文件都放在一个湖中。 file_list=[] path
在我的数据库中,我的手机上的每个条目都有一个图片的 uri。为了在手机上显示它,Listview 有一个 CustomAdapter。现在,我想在 ListView 中显示图片,得到如下错误信息: 0
我的所有节点在压缩期间都抛出 FileNotFoundException。因此,没有一个压缩(自动、手动)可以完成,我的 SSTable 计数现在是单个 CF (CQL3) 的数千个。 nodetoo
我在 java 中读取文件时遇到一些问题: 我的文件是例如: 3,4 2 6 4 1 7 3 8 9 其中第一行 3 和 4 是数组 A 和 B 的长度,然后是每个数组的元素。 我做的 import
我创建了一个程序,其中保存了学生的成绩,我想将这些成绩存储在txt文件中,然后在启动程序时,导入成绩,并在程序完成后导出成绩。我将import和exportTo方法放在单独的文件中,然后在主类中调用这
我怎样才能捕获一个 com.sun.faces.context.FacesFileNotFoundException 在 Java EE 网络应用程序中? 我尝试在我的 web.xml 文件中添加以下
请帮忙,我正在尝试从此谷歌翻译 API URL 获取数据仅当值为 1 个单词时它才有效。如果值为 2,则会出现错误。 我的意思是这个值会起作用: String sourceLang = "auto";
当我尝试使用retrofit2上传图片时,出现此错误 :java.io.FileNotFoundException(No such file or directory). HashMap partMa
try { FileReader fr = new FileReader("C:\\Users\\kevin\\Desktop\\AndroidLibr\\LeagueStats\\a
我尝试使用 Java 将单个文件从源复制到目标,但收到以下错误消息。 java.io.FileNotFoundException:以下是方法 public void copy_single(Strin
类似的问题涉及 C: 上的文件。驱动器,其中对文件路径进行硬编码是可接受的答案。此应用程序是移动应用程序,对文件路径进行硬编码并不实用。 我正在尝试通过扫描仪导入一个文本文件,其中包含一个字符串列表,
我正在修改一个小应用程序以从文件中读取一些数字。到目前为止一切都运行良好,但现在我遇到了一个问题,我不知道如何有效地解决它。如果用户输入了错误的文件名(可能是无意的),JVM 将抛出 FileNotF
我有一个 Web 项目,其中使用以下代码: try { br1 = new BufferedReader(new FileReader("queryWords.txt")); } catch
我尝试使用绝对路径从文件系统读取文件,但由于“FileNotFoundException”而失败,我不知道为什么 File file=new File("E:\\Directory\\File.txt
在我当前的项目中,我遇到了未收到文件未找到异常的问题。我的驱动程序文件将要打开的路径传递给正在构建图书库的构造函数。我正在使用 JFileChooser 来获取路径。在尝试强制错误(输入不存在的文件名
这个问题已经有答案了: Java: Unresolved compilation problem (10 个回答) 已关闭 4 年前。 我已经查看了有关此问题的其他答案,并尝试了他们的建议,但没有成功
我是一名优秀的程序员,十分优秀!