📄 xinputfileimpl.java
字号:
/*
* @(#)XInputFileImpl.java - implementation for ftp access
*
* Copyright (c) 2004-2005 by roehrist, All Rights Reserved.
*
* This file is part of X, a free Java based demux utility.
* X is intended for educational purposes only, as a non-commercial test project.
* It may not be used otherwise. Most parts are only experimental.
*
*
* This program is free software; you can redistribute it free of charge
* and/or modify it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
/*
* requires Jakarta Commons Net library, developed by the
* Apache Software Foundation (http://www.apache.org/).
*/
package net.sourceforge.dvb.projectx.xinput.ftp;
import java.io.EOFException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.PushbackInputStream;
import java.io.RandomAccessFile;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.StringTokenizer;
import net.sourceforge.dvb.projectx.common.X;
import net.sourceforge.dvb.projectx.gui.Dialogs;
import net.sourceforge.dvb.projectx.common.Resource;
import net.sourceforge.dvb.projectx.common.Common;
import net.sourceforge.dvb.projectx.xinput.FileType;
import net.sourceforge.dvb.projectx.xinput.XInputFileIF;
import net.sourceforge.dvb.projectx.xinput.XInputStream;
import org.apache.commons.net.ftp.FTPFile;
import java.io.DataInputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTP;
public class XInputFileImpl implements XInputFileIF {
private boolean debug = false;
// Members, which are type independent
private FileType fileType = null;
private boolean isopen = false;
private PushbackInputStream pbis = null;
private File rafFile = null;
private RandomAccessFile raf = null;
private byte[] buffer = new byte[8];
// Members used for type FileType.FTP
private FtpVO ftpVO = null;
private FTPFile ftpFile = null;
private FTPClient client = null;
private DataInputStream in = null;
public XInputStream xIs = null;
private Object constructorParameter = null;
/**
* Private Constructor, don't use!
*/
private XInputFileImpl() {
throw new UnsupportedOperationException();
}
/**
* Create a XInputFile of type FileType.FTP.
*
* @param aFtpVO
* Directory data to use
* @param aFtpFile
* File data to use
*/
public XInputFileImpl(FtpVO aFtpVO) {
if (debug) System.out.println("Try to create XInputFile of Type FTP");
ftpVO = aFtpVO;
ftpFile = aFtpVO.getFtpFile();
fileType = FileType.FTP;
if (!exists()) { throw new IllegalArgumentException("File is not of type FileType.FTP"); }
if (debug) System.out.println("Succeeded to create XInputFile of Type FTP");
}
/**
* Get String representation of the object.
*
* @return String representation of the object
*/
public String toString() {
String s;
String name = ftpFile.getName();
name = replaceStringByString(name, "盲", "
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -