「java两个包」java两个包怎么组合在一起
今天给各位分享java两个包的知识,其中也会对java两个包怎么组合在一起进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、对JAVA的两个FTP包进行比较分析
- 2、java创建2个包
- 3、JAVA问题:定义两个包,在一个包中定义一个接口,这个接口包含两个方法,在另一个包中实现这个接口
- 4、java中同一文件下的两个包有什么联系
对JAVA的两个FTP包进行比较分析
ftp *;
这是一个不被官方支持的 但是放在JDK下面的FTP包 正因为不被支
持 所以没有官方提供API 这是其最大的缺陷之一 最重要由于不是官方支持的
所以文档也是没有的
[url]l[/url]
这里有该包的API
先给一个简单的例子 (例子来源互联网)
)显示FTP服务器上的文件
void ftpList_actionPerformed(ActionEvent e) {
String server=serverEdit getText();//输入的FTP服务器的IP地址
String user=userEdit getText(); file://登/录FTP服务器的用户名
String password=passwordEdit getText();//登录FTP服务器的用户名的口令
String path=pathEdit getText();//FTP服务器上的路径
try {
FtpClient ftpClient=new FtpClient();//创建FtpClient对象
ftpClient openServer(server);//连接FTP服务器
ftpClient login(user password);//登录FTP服务器
if (path length()!= ) ftpClient cd(path);
TelnetInputStream is=ftpClient list();
int c;
while ((c=is read())!= ) {
System out print((char) c);}
is close();
ftpClient closeServer();//退出FTP服务器
} catch (IOException ex) {;}
}
)从FTP服务器上下传一个文件
void getButton_actionPerformed(ActionEvent e) {
String server=serverEdit getText();
String user=userEdit getText();
String password=passwordEdit getText();
String path=pathEdit getText();
String filename=filenameEdit getText();
try {
FtpClient ftpClient=new FtpClient();
ftpClient openServer(server);
ftpClient login(user password);
if (path length()!= ) ftpClient cd(path);
ftpClient binary();
TelnetInputStream is=ftpClient get(filename);
File file_out=new File(filename);
FileOutputStream os=new
FileOutputStream(file_out);
byte[] bytes=new byte[ ];
int c;
while ((c=is read(bytes))!= ) {
os write(bytes c);
}
is close();
os close();
ftpClient closeServer();
} catch (IOException ex) {;}
}
)向FTP服务器上上传一个文件
void putButton_actionPerformed(ActionEvent e) {
String server=serverEdit getText();
String user=userEdit getText();
String password=passwordEdit getText();
String path=pathEdit getText();
String filename=filenameEdit getText();
try {
FtpClient ftpClient=new FtpClient();
ftpClient openServer(server);
ftpClient login(user password);
if (path length()!= ) ftpClient cd(path);
ftpClient binary();
TelnetOutputStream os=ftpClient put(filename);
File file_in=new File(filename);
FileInputStream is=new FileInputStream(file_in);
byte[] bytes=new byte[ ];
int c;
while ((c=is read(bytes))!= ){
os write(bytes c);}
is close();
os close();
ftpClient closeServer();
} catch (IOException ex) {;}
}
}
看了这个例子 应该就能用他写东西了
这个包缺点很多 首先就是不被支持也不被官方推荐使用
其次是这个包功能过于简单 简单到无法区分FTP服务器上的File是文件还是目录 有人说
通过返回的字符串来判断 但是据说FTP在不同系统下返回的东西不大一样 所以如果通过
判断字符串会有不好移植的问题
自己想出了一个办法 通过FtpClient中的cd方法来判断
代码如下
try{
ftp cd(file);//file为当前判断的文件
//如果过了说明file是目录
}
catch(IOException e){
//说明file是文件
}
finally{
ftp cd( );//返回上级目录继续判断下一文件
}
我用这种方法做过尝试 结果是只能判断正确一部分 有些目录仍会被认做文件 不知道
是我的方法有错还是别的什么原因
如果对FTP服务没有过高的要求 使用这个包还是不错的 因为他本身就包含在JDK中 不
存在CLASSPATH的问题 不需要导入外部包 较为方便
ftp *;
这个包在Jakarta Commons Net library里 现在的最高版本是 可以从以下地址
下载
[url] net [/url]
zip
里面包含了打包好的jar API 及全部的class文件
[url] net [/url]
src zip
这里包含一些例子以及全部的代码
给出一个该包的例子
import ftp *;
public static void getDataFiles( String server
String username
String password
String folder
String destinationFolder
Calendar start
Calendar end )
{
try
{
// Connect and logon to FTP Server
FTPClient ftp = new FTPClient();
nnect( server );
ftp login( username password );
System out println( Connected to +
server + );
System out print(ftp getReplyString());
// List the files in the directory
ftp changeWorkingDirectory( folder );
FTPFile[] files = ftp listFiles();
System out println( Number of files in dir: + files length );
DateFormat df = DateFormat getDateInstance( DateFormat SHORT );
for( int i= ; i
{
Date fileDate = files[ i ] getTimestamp() getTime();
if( pareTo( start getTime() ) =
pareTo( end getTime() ) = )
{
// Download a file from the FTP Server
System out print( df format( files[ i ] getTimestamp() getTime() ) );
System out println( \t + files[ i ] getName() );
File file = new File( destinationFolder +
File separator + files[ i ] getName() );
FileOutputStream fos = new FileOutputStream( file );
ftp retrieveFile( files[ i ] getName() fos );
fos close();
file setLastModified( fileDate getTime() );
}
}
// Logout from the FTP Server and disconnect
ftp logout();
ftp disconnect();
}
catch( Exception e )
{
e printStackTrace();
}
}
同 ftp相同 都是先建立FtpClient(注意两包的大小写不同)的实例 然后通过
connect()方法连接 login()方法登陆 但是 ftp *明显比sun
net ftp功能强大很多
ftp *包将FTP中的file单独出来成为了一个新类FTPFile 还有
类FTPFileEntryParser parse 没有仔细研究 但是从字面来看应该是转化为某种形势的
类 有待研究
同时这个mons net jar包中也提供了FTP服务器 telnet mail等一系列类库
ftp *包的缺点在于需要设置classpath 并且需要下载jakarta
oro jar这个包才能运行(如果没有这个包 会在ftp listFiles()方法后抛出找不
到class异常) 此包无须在代码中import 只需设置在classpath中即可 下载地址
[url] oro zip[/url]
如果想要强大的FTP服务 那么 ftp *包应该是你的最好选择 而
且也是开源 免费的
这个包的问题是:
使用Jakarta Commons Net library需要在环境变量里面编辑classpath
这是不方便的地方
lishixinzhi/Article/program/Java/hx/201311/27057
java创建2个包
你要写这两个类?
这个很简单啊。
来刷分的?
package a;
public class A {
public double c,d;
public A(double x, double y){
this.c = x;
this.d = y;
}
public double add(){
return c + d;
}
}
package b;
import a.A;
public class B {
public static void main(String[] args) {
A e = new A(1.0, 3.0);
double need = e.add();
System.out.println(need);
}
}
JAVA问题:定义两个包,在一个包中定义一个接口,这个接口包含两个方法,在另一个包中实现这个接口
在java中比较倡导接口与实现的分离,这样有利于多人协作的开发配合。
根据题主的需求,我们可以构建一个demo。代码的组织结构参见截图
UserInfo.java 代码如下
package domain;
public class UserInfo {
/**
* 用户id
*/
public String recId;
/**
* 用户名
*/
public String userName;
public String getRecId() {
return recId;
}
public void setRecId(String recId) {
this.recId = recId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
接口类TestService.java代码如下:
package service;
import domain.UserInfo;
public interface TestService {
/**
* 根据用户id取用户信息
*
* @param recId
* @return
*/
public UserInfo getUserInfoByID(String recId);
/**
* 修改用户信息
*
* @param userInfo
*/
public void updateUserInfo(UserInfo userInfo);
}
实现类TestServiceImpl.java 代码如下:
package serviceiml;
import domain.UserInfo;
import service.TestService;
public class TestServiceImpl implements TestService {
@Override
public UserInfo getUserInfoByID(String recId) {
// TODO 查询用户信息
return null;
}
@Override
public void updateUserInfo(UserInfo userInfo) {
// 修改用户信息
}
}
java中同一文件下的两个包有什么联系
一般是没有什么关系的,只是不同应用,同一的.java
文件中可以有不同的类,但只能有一个和.Java文件同名的public权限的类名。
关于java两个包和java两个包怎么组合在一起的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。