public void StreamSplitWords() { BufferedReader br; try { br = new BufferedReader(new FileReader("test.txt")); List<String> words = Arrays.stream(br.spilt("\\s+")) .filter(word -> word.matches("[a-zA-Z]+")) .collect(Collectors.toList()); br.close(); System.out.println(words); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
时间: 2023-06-17 11:04:13 浏览: 58
这是一个Java方法,它从名为test.txt的文本文件中读取单词,并将它们存储在一个List<String>中。具体来说,它使用BufferedReader来读取文件,然后使用split("\\s+")将每一行拆分成单独的单词,然后使用filter和正则表达式过滤掉非字母的字符。最后,它使用collect(Collectors.toList())将过滤后的单词收集到一个List<String>中,并将其打印出来。如果在读取文件或处理单词时发生任何异常,它将打印堆栈跟踪以帮助调试。
相关问题
分析以下代码package s5; import java.io.*; public class Sy5_3 { public static void main(String[] args) { // 读取myfile.txt文件并显示内容 try { FileReader fr = new FileReader("myfile.txt"); BufferedReader br = new BufferedReader(fr); String line; while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); fr.close(); } catch (IOException e) { e.printStackTrace(); } // 将myfile.txt文件的内容写入test.txt文件中 try { FileReader fr = new FileReader("myfile.txt"); BufferedReader br = new BufferedReader(fr); FileWriter fw = new FileWriter("test.txt"); String line; while ((line = br.readLine()) != null) { fw.write(line + "\n"); } fw.close(); br.close(); fr.close(); } catch (IOException e) { e.printStackTrace(); } System.out.println("文件写入完成!"); } }
这段代码实现了读取一个文件的内容并显示在控制台上,以及将该文件的内容写入到另一个文件中。
具体分析如下:
1. 第一行代码指定了代码所在的包名为s5。
2. 第二行到第四行依次引入了Java的四个IO类:FileReader、BufferedReader、FileWriter和IOException。
3. 第五行定义了一个名为Sy5_3的公共类(public class),这个类包含了一个名为main的静态方法(public static void main(String[] args))。
4. 在main方法中,首先使用FileReader对象和BufferedReader对象读取myfile.txt文件的内容,并将每一行内容显示在控制台上。
5. 然后再次使用FileReader对象和BufferedReader对象读取myfile.txt文件的内容,并使用FileWriter对象将内容写入到test.txt文件中。在写入文件时,每一行内容后面加上一个换行符。
6. 最后关闭输入流和输出流,释放资源。如果发生异常,则打印异常信息。
7. 在代码执行完写入操作后,输出一条提示信息。
需要注意的是,这段代码中的异常处理比较简单,只是简单地打印了异常信息,并没有进行具体的处理。在实际开发中,应该根据具体情况进行更加详细的异常处理。同时,如果要读取和写入的文件内容较大,建议使用缓冲流进行处理,可以提高读写性能。
import java. 1o. * public class MyClass 1 public static void main (String argvl) MyClass mob = new MyClass 0; mob. myFunction ( ); public void myFunction ( ) try i FileReader dis = new FileReader (Hello. txt ); BufferedReader br=new BufferedReader (dis) ; String str=br. readLine); while (str. length () >0) I System. out. printIn (str); Str=br. readLine; catch (FileNotFoundException fne) 1 System. out. printIn("No such file found"); catch (IOException ioe) { finally System. out. printIn("*Ш§T"); 程
这段代码存在一些语法错误,我来帮你修正一下:
```java
import java.io.*;
public class MyClass {
public static void main(String[] argvl) {
MyClass mob = new MyClass();
mob.myFunction();
}
public void myFunction() {
try {
FileReader dis = new FileReader("Hello.txt");
BufferedReader br = new BufferedReader(dis);
String str = br.readLine();
while (str != null && str.length() > 0) {
System.out.println(str);
str = br.readLine();
}
br.close();
dis.close();
} catch (FileNotFoundException fne) {
System.out.println("No such file found");
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
System.out.println("*程序结束");
}
}
}
```
在上述代码中,我们使用 Java IO 的 FileReader 和 BufferedReader 类来读取文件内容。在 myFunction 方法中,我们首先创建 FileReader 和 BufferedReader 对象,然后使用 readLine 方法逐行读取文件内容,直到读取到 null 表示文件结束。在读取文件过程中,我们使用 while 循环不断读取并输出文件内容。最后,我们使用 close 方法关闭 BufferedReader 和 FileReader 对象。如果出现异常,我们使用 try-catch-finally 语句块来处理异常,并在 finally 块中输出一条程序结束的信息。
阅读全文