我希望能够获取一个网页的html并将其保存到一个String,所以我可以对它进行一些处理.另外,我如何处理各种类型的压缩.
我将如何使用Java进行此操作?
我需要从URL对象创建一个File对象我的要求是我需要创建一个Web图像的文件对象(比如googles logo)
URL url = new URL("http://google.com/pathtoaimage.jpg");
File f = create image from url object
Run Code Online (Sandbox Code Playgroud) 我试图从在线文本文件中读取一些单词.
我尝试过做这样的事情
File file = new File("http://www.puzzlers.org/pub/wordlists/pocket.txt");
Scanner scan = new Scanner(file);
Run Code Online (Sandbox Code Playgroud)
但它没有用,我得到了
http://www.puzzlers.org/pub/wordlists/pocket.txt
Run Code Online (Sandbox Code Playgroud)
作为输出,我只想得到所有的话.
我知道他们在当天教我这个,但我现在不记得到底是怎么做的,非常感谢任何帮助.
当我知道给定的InputStream是否不是缓冲的时候,总是将InputStream包装为BufferedInputStream是否有意义?例如:
InputStream is = API.getFromSomewhere()
if(!(is instanceof BufferedInputStream))
return new BufferedInputStream(is);
return is;
Run Code Online (Sandbox Code Playgroud) 我正在以编程方式从Web服务器下载文件.下载完成后,我检查了文件.大小,扩展名和所有其他参数都是正确的,但是当我尝试在媒体播放器中播放该文件时,它表明它已损坏.
这是我的代码:
byte[] b = null;
InputStream in = null;
b = new byte[Integer.parseInt(size)]; // size of the file.
in = OpenHttpConnection(URL);
in.read(b);
in.close();
File folder = new File("/sdcard", "folder");
boolean check = folder.mkdirs();
Log.d("HttpDownload", "check " + check);
File myFile = new File("/sdcard/folder/" + name);
myFile.createNewFile();
OutputStream filoutputStream = new FileOutputStream(myFile);
filoutputStream.write(b);
filoutputStream.flush();
filoutputStream.close();
Run Code Online (Sandbox Code Playgroud) 我写了一些代码来下载我做的网络直播.它获取剧集的URL并获取保存它的位置.但是,它最多只下载16MB然后自动取消.我不完全确定要改变什么价值来增加这个.是否有可能,有人可以指出我正确的方向吗?谢谢!
下载代码:
URL url = new URL(episode.getUrl());
ReadableByteChannel rbc = Channels.newChannel(url.openStream());
FileOutputStream fos = new FileOutputStream(episode.getLocalSave());
fos.getChannel().transferFrom(rbc, 0, 1 << 24);
Run Code Online (Sandbox Code Playgroud) 最近我在一个需要比以前更多的IO交互的项目上工作,我觉得我想要查看常规库(特别是Commons IO)并解决更深入的IO问题.
作为学术测试,我决定实现一个基本的,多线程的HTTP下载器.这个想法很简单:提供一个下载URL,代码将下载该文件.为了提高下载速度,文件被分块并且每个块同时下载(使用HTTP Range: bytes=x-x头)以使用尽可能多的带宽.
我有一个工作原型,但你可能已经猜到了,它并不完全理想.目前我手动启动3个"下载程序"线程,每个线程下载文件的1/3.这些线程使用通用的同步"文件编写器"实例来实际将文件写入磁盘.完成所有线程后,"文件编写器"完成,任何打开的流都关闭.一些代码片段可以给你一个想法:
线程启动:
ExecutorService downloadExecutor = Executors.newFixedThreadPool(3);
...
downloadExecutor.execute(new Downloader(fileWriter, download, start1, end1));
downloadExecutor.execute(new Downloader(fileWriter, download, start2, end2));
downloadExecutor.execute(new Downloader(fileWriter, download, start3, end3));
Run Code Online (Sandbox Code Playgroud)
每个"下载程序"线程下载一个块(缓冲)并使用"文件编写器"写入磁盘:
int bytesRead = 0;
byte[] buffer = new byte[1024*1024];
InputStream inStream = entity.getContent();
long seekOffset = chunkStart;
while ((bytesRead = inStream.read(buffer)) != -1)
{
fileWriter.write(buffer, bytesRead, seekOffset);
seekOffset += bytesRead;
}
Run Code Online (Sandbox Code Playgroud)
"文件写入器"使用RandomAccessFileto seek()和write()磁盘块写入磁盘:
public synchronized void write(byte[] bytes, int len, long start) throws IOException
{
output.seek(start); …Run Code Online (Sandbox Code Playgroud) 感谢这个线程如何使用Java从Internet下载和保存文件? 我知道如何下载文件,现在我的问题是我需要在我正在下载的服务器上进行身份验证.它是subversion服务器的http接口.我需要查看哪个字段?
使用上一条评论中发布的代码,我得到了以下异常:
java.io.IOException: Server returned HTTP response code: 401 for URL: http://myserver/systemc-2.0.1.tgz
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1305)
at java.net.URL.openStream(URL.java:1009)
at mypackage.Installer.installSystemc201(Installer.java:29)
at mypackage.Installer.main(Installer.java:38)
Run Code Online (Sandbox Code Playgroud)
谢谢,
java authentication download httpwebrequest basic-authentication
我在java中有一个带有文件名和URL的DownloadTask类,下载该文件并将其保存到下载文件夹中.
要将它保存到我的下载文件夹,我就有了这条线
File file = new File("/users/myName/Downloads" + fileName + ".txt");
我可以用什么来替换这个路径,以便任何人都可以运行程序,文件将保存到他们的下载文件夹中?
我想创建一个Java应用程序,在执行时从URL下载文件.我可以使用任何功能来执行此操作吗?
这段代码仅适用于.txt文件:
URL url= new URL("http://cgi.di.uoa.gr/~std10108/a.txt");
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream()));
PrintWriter writer = new PrintWriter("file.txt", "UTF-8");
String inputLine;
while ((inputLine = in.readLine()) != null){
writer.write(inputLine+ System.getProperty( "line.separator" ));
System.out.println(inputLine);
}
writer.close();
in.close();
Run Code Online (Sandbox Code Playgroud) java ×9
download ×3
file ×3
http ×2
android ×1
compression ×1
io ×1
java-io ×1
pdf ×1
performance ×1
stream ×1
text-files ×1
unix ×1