Java 如何在内存中创建用于存储字符串的缓冲流?
我有以下任务:使用apache.commons.net.FTPClient等创建将数据上载到FTP服务器的应用程序。有一个方法client.storeFile()允许上载文件(它需要InputStream作为方法参数之一)。但我想把txt文件放到服务器上,它应该包含字符串数组——数组是程序的变量。我应该创建文件,将字符串放入其中并将此文件传输到方法中,还是存在允许在内存中存储字符串而不创建文件的流?无论如何,谢谢你 您可以使用您可以使用,但是由于您有一个字符串数组,您可能需要首先将所有字符串连接起来,或者使用一个生成所有子输入流的 如果数组很大,我会选择第二种方法,并结合惰性枚举Java 如何在内存中创建用于存储字符串的缓冲流?,java,Java,我有以下任务:使用apache.commons.net.FTPClient等创建将数据上载到FTP服务器的应用程序。有一个方法client.storeFile()允许上载文件(它需要InputStream作为方法参数之一)。但我想把txt文件放到服务器上,它应该包含字符串数组——数组是程序的变量。我应该创建文件,将字符串放入其中并将此文件传输到方法中,还是存在允许在内存中存储字符串而不创建文件的流?无论如何,谢谢你 您可以使用您可以使用,但是由于您有一个字符串数组,您可能需要首先将所有字符串连接
顺便说一下,
StringBufferInputStream
已被弃用,因此可能需要使用ByteArrayInputStream
和String.getBytes(…)
方法来代替。谢谢,我可以将我的字符串存储到BAOS中。但是我应该如何从ByteArrayInputStream获取InputStream呢?使用ByteArrayInputStream
就像在new ByteArrayInputStream(baos.toByteArray())
中一样,我想你应该直接使用ByteArrayInputStream
和字符串。getBytes
1还需要考虑一下-我如何将字符串传输到下一行?如果我使用文件,我可以使用writeLine(),但我不知道如何使用字节。