Tag: stream

根据另一个列表中的条件删除一个列表中的某些元素

我是Java8的新手。 我需要根据某些条件(来自另一个列表)在一个列表中减去/删除POJO并在UI上显示它。 迭代一个列表并搜索条件删除对象将原始列表发送到UI Children.java private String firstName; private String lastName; private String school; private String personId; // Setters and getters. Person.java private String personId; private String fullName; private String address; // Setters and Getters. ..主要代码.. // populated by other methods. List personList; //Connect to DB and get ChildrenList List childrenList = criteria.list(); for(Children child : […]

java.util.Arrays.asList与removeIf一起使用时抛出UnsupportedOperationException

我准备接下来的2个月进行OCPJP 8考试,目前我已经引起了我的注意,因为我不明白为什么 public class BiPredicateTest { public static void main(String[] args) { BiPredicate<List, Integer> containsInt = List::contains; List ints = java.util.Arrays.asList(1,20,20); ints.add(1); ints.add(20); ints.add(20); System.out.println(containsInt.test(ints, 20)); BiConsumer<List, Integer> listInt = BiPredicateTest::consumeMe; listInt.accept(ints, 15); } public static void consumeMe(List ints, int num) { ints.removeIf(i -> i>num); ints.forEach(System.out::println); } } 这显然是编译好的! 但是当你运行它时,你会看到这样的exception C:\Users\user\Documents>javac BiPredicateTest.java C:\Users\user\Documents>java BiPredicateTest true […]

如果未手动关闭流,它何时关闭?

我想知道如果一个流没有手动关闭,它什么时候关闭。 我的意思是,如果它的参考范围不再是,那么流将被关闭吗? 请考虑以下示例场景。 Class A{ InputStream in; OutputStream out; A(){ // Initialize and create the streams. } … } Class B{ public void myMethod(){ A a = new A(); System.out.println(“End of my method.”) } … } 在这里,一旦我完成了流,我将退出myMethod()但程序反过来进程,不会终止并继续其他操作。 我没有关闭溪流。 一旦A类参考范围结束,它会自动关闭吗? (即当myMethod()结束时)? GC会照顾到这个吗? 此外,我读到,一旦进程结束,流将被关闭,系统将释放为其他进程保留的所有资源。 我们如何检查流是否开放? 是否有来自Java的任何linux命令或选项来检查? 任何帮助表示赞赏!

FileInputStream vs ClassPathResource vs getResourceAsStream和文件完整性

我有一个奇怪的问题: 在src / main / resources中我有一个“template.xlsx”文件。 如果我这样做: InputStream is = new ClassPathResource(“template.xlsx”).getInputStream(); 或这个 : InputStream is = ClassLoader.getSystemResourceAsStream(“template.xlsx”); 或这个 : InputStream is = getClass().getResourceAsStream(“/template.xlsx”); 当我尝试创建工作簿时: Workbook wb = new XSSFWorkbook(is); 我收到此错误: java.util.zip.ZipException: invalid block type 但是,当我得到这样的文件时: InputStream is = new FileInputStream(“C:/…/src/main/resources/template.xlsx”); 有用 ! 哪里不对 ? 我无法将完整路径硬编码到文件中。 有人可以帮我弄这个吗 ? 谢谢

当流未明确关闭时,Files.list(Path dir)中的资源泄漏?

我最近写了一个小应用程序,定期检查目录的内容。 过了一会儿,应用程序因为打开文件句柄太多而崩溃。 经过一些调试,我发现以下行中的错误: Files.list(Paths.get(destination)).forEach(path -> { // To stuff }); 然后我检查了文件列表中的javadoc(我可能应该早些做过)并找到: * The returned stream encapsulates a {@link DirectoryStream}. * If timely disposal of file system resources is required, the * {@code try}-with-resources construct should be used to ensure that the * stream’s {@link Stream#close close} method is invoked after the stream * operations are […]

使用Java读取远程MP3文件的ID3标签

我正在寻找一种从远程服务器上的MP3文件中读取ID3标签而无需实际下载文件的方法。 我见过像JAudioTagger和Entagged这样的库,但两者似乎都需要一个文件对象,而不是一个URL或InputStream,我知道如何使用远程文件。 还有另一个库可以做到这一点吗? 或者有没有办法让正确的对象使用URL与这些类进行交互?

Java I / O流; 有什么区别?

java.io有许多不同的I / O流,(FileInputStream,FileOutputStream,FileReader,FileWriter,BufferedStreams等等),我很困惑,确定它们之间的差异。 有哪些例子表明一种流类型优先于另一种流类型,它们之间的真正区别是什么?

如何在Java中将InputStream转换为String?

假设我有一个包含文本数据的InputStream ,我想将其转换为String (例如,我可以将流的内容写入日志文件)。 获取InputStream并将其转换为String的最简单方法是什么? public String convertStreamToString(InputStream is) { // ??? }

我们为什么不在使用后关闭`System.out` Stream?

我只想知道,我们通常在最后关闭流,但为什么不用System.out.close()关闭System.out PrintStream?

Files.readAllBytes vs Files.lines获取MalformedInputException

我原以为以下两种读取文件的方法应该是一样的。 但他们没有。 第二种方法是抛出MalformedInputException 。 public static void main(String[] args) { try { String content = new String(Files.readAllBytes(Paths.get(“_template.txt”))); System.out.println(content); } catch (IOException e) { e.printStackTrace(); } try(Stream lines = Files.lines(Paths.get(“_template.txt”))) { lines.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } 这是堆栈跟踪: Exception in thread “main” java.io.UncheckedIOException: java.nio.charset.MalformedInputException: Input length = 1 at java.io.BufferedReader$1.hasNext(BufferedReader.java:574) at java.util.Iterator.forEachRemaining(Iterator.java:115) at […]