Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java和FTP用于编辑联机文本文件_Java_Text_File Upload_Ftp - Fatal编程技术网

Java和FTP用于编辑联机文本文件

Java和FTP用于编辑联机文本文件,java,text,file-upload,ftp,Java,Text,File Upload,Ftp,在我的JavaSwing程序中,我使用Scanner和BufferedWriter在本地文件夹中读取、编辑和保存各种文本文件。有没有一种简单的方法可以保存当前代码,但使用FTP编辑web文件而不是本地文件?谢谢大家。您可以使用URL和URLConnection类获取FTP服务器上文件的InputStreams和OutputStreams 读取文件 URL url = new URL("ftp://user:pass@my.ftphost.com/myfile.txt"); InputStream

在我的JavaSwing程序中,我使用Scanner和BufferedWriter在本地文件夹中读取、编辑和保存各种文本文件。有没有一种简单的方法可以保存当前代码,但使用FTP编辑web文件而不是本地文件?谢谢大家。

您可以使用URL和URLConnection类获取FTP服务器上文件的InputStreams和OutputStreams

读取文件

URL url = new URL("ftp://user:pass@my.ftphost.com/myfile.txt");
InputStream in = url.openStream();
写文件

URL url = new URL("ftp://user:pass@my.ftphost.com/myfile.txt");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStream out = conn.getOutputStream();

我试图达到同样的目的,这些问题的答案对我帮助很大:

(标记为右侧的显示了如何将自定义字符串添加到InputStream)

(来自Kumar Vivek Mitra的图片展示了如何上传文件)

我在在线文件的末尾添加了新文本,如下所示:

FTPClient con = null;

        try {
            con = new FTPClient();
            con.connect(Hostname);

            if (con.login(FTPUsername, FTPPassword)) {
                con.enterLocalPassiveMode(); // important!
                con.setFileType(FTP.BINARY_FILE_TYPE);

                InputStream onlineDataIS = urlOfOnlineFile.openStream();

                String end = "\nteeeeeeeeeeeeeeeeest";
                List<InputStream> streams = Arrays.asList(
                        onlineDataIS,
                        new ByteArrayInputStream(end.getBytes()));
                InputStream resultIS = new SequenceInputStream(Collections.enumeration(streams));

                // Stores a file on the server using the given name and taking input from the given InputStream.
                boolean result = con.storeFile(PathOfTargetFile, resultIS);
                onlineDataIS.close();
                resultIS.close();
                if (result) Log.v("upload result", "succeeded");
                con.logout();
                con.disconnect();
            }
            return "Writing successful";
        } catch (IOException e) {
             // some smart error handling
        }
FTPClient con=null;
试一试{
con=新的FTPClient();
con.connect(主机名);
if(con.login(FTPUsername,FTPPassword)){
con.enterLocalPassiveMode();//重要!
con.setFileType(FTP.BINARY文件类型);
InputStream onlineDataIS=urlOfOnlineFile.openStream();
字符串结束=“\nTeeest”;
List streams=Arrays.asList(
在线数据是,
新建ByteArrayInputStream(end.getBytes());
InputStream resultIS=新序列InputStream(Collections.enumeration(streams));
//使用给定的名称并从给定的InputStream获取输入,在服务器上存储文件。
布尔结果=con.storeFile(PathOfTargetFile,resultIS);
onlineDataIS.close();
resultIS.close();
if(result)Log.v(“上传结果”,“成功”);
con.logout();
con.disconnect();
}
返回“写作成功”;
}捕获(IOE异常){
//一些智能错误处理
}
希望对您有所帮助。

URL=newurl(“ftp://user:pass@my.ftphost.com/myfile.txt);URLConnection=url.openConnection();connection.setDoOutput(真);OutputStreamWriter out=新的OutputStreamWriter(connection.getOutputStream());写下:“早上好,星光!地球说你好!!”;out.close()这对我不起作用。。。