我想InputStream从客户端发送一个包含 XML 到服务器。所述服务器使用 XML 流操作Streaming API for XML (StAX)并将其发送回客户端。
我设法将 XML 发送到服务器,客户端收到答案,但没有退出,因为服务器从未完成读取InputStream客户端的表单。但是当服务器只是将输入转储到System.out而不是发送某些东西时,读取就完成了......
编辑我忘了提到它IOUtils.copy()在客户端上的两个独立线程中运行。
这里有一些代码来重现这一点,我已经在服务器上替换了该StAX部分IOUtils.copy()。
服务器
ServerSocket serverSocket = new ServerSocket(port);
Socket clientSocket = serverSocket.accept();
InputStream in = clientSocket.getInputStream();
OutputStream out = clientSocket.getOutputStream();
IOUtils.copy(in, out);
Run Code Online (Sandbox Code Playgroud)
客户
Socket socket = new Socket(host, port);
FileInputStream fin = new FileInputStream(file);
OutputStream out = socket.getOutputStream();
IOUtils.copy(fin, out)
InputStream in = socket.getInputStream();
IOUtils.copy(in, System.out)
Run Code Online (Sandbox Code Playgroud) 我试图将文件从一个目的地复制到另一个目的地.我无法理解错误发生的原因.任何帮助表示赞赏.
public class FileSearch {
public void findFiles(File root) throws IOException {
File[] listOfFiles = root.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
String iName = listOfFiles[i].getName();
if (listOfFiles[i].isFile() && iName.endsWith(".tif")) {
long fileSize = listOfFiles[i].length();
long sizeToKb = fileSize/1024;
File copyDest = new File("C:\\Users\\username\\Desktop\\ZipFiles");
if (fileSize <= 600000) {
System.out.println("|" + listOfFiles[i].getName().toString() + " | Size: " + sizeToKb+" KB");
FileUtils.copyFile(listOfFiles[i], copyDest);
}
} else if (listOfFiles[i].isDirectory()) {
findFiles(listOfFiles[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误 Exception in thread …
我使用以下代码过滤具有以下扩展名的文件
FileFilter fileFilter= new WildcardFileFilter("*.docx");
File[] sampleFiles= filesDirectory.listFiles(fileFilter);
Run Code Online (Sandbox Code Playgroud)
但是,如果我想要相反的情况,我想排除具有此扩展名的文件。目前我有以下代码
public class FileFilter {
public static void main(String[] args) {
File dir = new File("C:\\temp\\filter-exclude");
File[] files = dir.listFiles(new ExcludeFilter());
for (File f : files) {
System.out.println("file: " + f.getName());
}
}
public static class ExcludeFilter implements java.io.FileFilter {
@Override
public boolean accept(File file) {
if (file.getName().toLowerCase().endsWith("docx")) {
return false;
}
return true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但不确定是否已经有这方面的课程。有这样的课吗?
我们使用批处理文件作为窗口服务运行jar并将xml文件放在c:/processed
目录中;
如果xml有一个错误的格式,然后将其移动到错误文件夹; 我们使用下面的方法将文件移动到错误文件夹,但得到以下异常.
我认为当进程运行时它无法将文件移动到错误文件夹.
FileUtils.moveToDirectory("a.xml", "c:/processed/error", false);
Run Code Online (Sandbox Code Playgroud)
movingErrorFolder中的异常:复制到'c:/processed/error/a.xml'后无法删除原始文件'c:/processed/a.xml'
我想在Eclipse中使用Apache commons.io作为插件项目.我将.jar添加到buildpath中:
(properties-> java build path-> Libraries)
但是当我尝试测试我的项目时,我收到此错误:
org/apache/commons/io/FileUtils的NoClassDefFoundError.
我认为Eclipse不会复制库或我想念项目复制该库.
我怎么解决这个问题?我正在尝试编写一个导出插件,其中一个完整的文件夹被复制到另一个文件夹.
通过谷歌搜索,在这个 SO 站点中,结果将FileUtils.listFilesAndDirs()来自 Apache Commons IO 的方法。
但是这种方法不会递归进入子文件夹 - 我们需要递归文件列表。
我们如何使用 Commons IO 做到这一点?
PS:
一种本机方法是使用File.listFiles()JDK 本机支持的解决方案here。
嘿大家我正在尝试获取目录列表.我正在使用FileUtils listFiles().
我想做这样的事情:listFiles(File,IOFileFilter,false).我真正的问题是如何从IOFileFilter实现accept(),以便检查当前File是否是目录?
先感谢您.
我正在使用创建tar.Gzip文件,GZIPOutputStream并且添加了另一个逻辑,即如果在压缩文件时捕获到任何异常,我的代码将重试3次。
当我抛出一个IOException测试我的重试逻辑时,它抛出下面的异常:
java.io.IOException: request to write '4096' bytes exceeds size in header of '2644' bytes for entry 'Alldbtypes'
我在行上收到异常: org.apache.commons.io.IOUtils.copyLarge(inputStream, tarStream);
private class CompressionStream extends GZIPOutputStream {
// Use compression levels from the deflator class
public CompressionStream(OutputStream out, int compressionLevel) throws IOException {
super(out);
def.setLevel(compressionLevel);
}
}
public void createTAR(){
boolean isSuccessful=false;
int count = 0;
int maxTries = 3;
while(!isSuccessful) {
InputStream inputStream =null;
FileOutputStream outputStream =null;
CompressionStream compressionStream=null;
OutputStream md5OutputStream = null; …Run Code Online (Sandbox Code Playgroud)