小编Pau*_*man的帖子

如何在Android上做一个简单的ftp get文件

我无法在任何地方找到一个简单的FTP访问文件的例子,并且FTPClient类(有几个例子使用)没有出现在Android类索引中.我有http访问工作,但我怎么做一个简单的FTP获取?我想要做的就是下载(例如):ftp: //tgftp.nws.noaa.gov/data/observations/metar/stations/KABQ.TXT 它不应该要求登录,更改目录等等. http访问方法的URL似乎不起作用.

这类似于以下问题: 无法从android中的ftp读取文件?

我试过一个简单的:

  StringBuilder response = new StringBuilder();
  URLConnection ftpConn;
  try {
  URL netUrl = new URL("ftp://tgftp.nws.noaa.gov/data/observations/metar/stations/KABQ.TXT");
  ftpConn = netUrl.openConnection();
  BufferedInputStream bufRd = new BufferedInputStream(ftpConn.getInputStream());
  int temp;
  while ((temp = bufRd.read()) != -1) {
      response.append(temp);
  }
  bufRd.close();
  } catch (Exception e) {
      return "Failure";
  }
Run Code Online (Sandbox Code Playgroud)

但它在getInputStream上获得异常:无法连接到服务器:无法配置数据端口

此外,必须有一种更智能的方法将数据从流缓冲区中拉出,而不是逐字节,不存在?我也找不到.

最后,我需要同时进行http和ftp访问,是否有任何理由不对两种访问类型都使用URLConnection?或者使用HttpConnection for http和URLConnection for ftp更好?

谢谢!

android ftpwebrequest

5
推荐指数
1
解决办法
1万
查看次数

正则表达式匹配android java中的数字

我正在尝试使用正则表达式来匹配java中的数字,例如:

Pattern p = Pattern.compile("(\d+) / (\d+)");
String myRunway = "12 / 1234";
Matcher m = p.matcher(myRunway);
int nrGroups = m.groupCount();
String rwData = m.group(1); //should have 12
String rwLen = m.group(2); //should have 1234
Run Code Online (Sandbox Code Playgroud)

编译器不喜欢\d(对于任何数字),它说唯一有效的转义是\b \t \n \f \r \" \' \\

只是为了yucks然后我尝试(\\d+) / (\\d+)并且它编译,但是不匹配.但是,nrGroups是2,如果没有匹配则没有意义.如何解析java中的数字组?在搜索论坛时,我发现只有C#帖子.

实际上,我最终希望能够匹配"12R/1234"使用(\d+).* / (\d+)"12"和"1234"作为两组,但我简化了上述内容以试图让它工作.

谢谢!

java regex android

1
推荐指数
1
解决办法
4246
查看次数

标签 统计

android ×2

ftpwebrequest ×1

java ×1

regex ×1