public class Reader {
public static void main(String[] args) throws IOException {
try (FileReader in = new FileReader("D:/test.txt")) {
// BufferedReader br = new BufferedReader(in);
int line = in .read();
for (int i = 0; i < line; i++) {
//System.out.println(line);
System.out.println((char) line);
line = in .read();
}
}
}
}
和一个文件test.txt
,其内容如下:
Hello
Java
当我运行上面的代码时,它只读取hello
。我只想使用FileReader
读取多行。我不想使用BufferedReader
或InputStreamReader
等,这可能吗?
我不认为这个版本的代码打印的是“你好”。
你在打电话:
int line = in.read();
这是做什么的?在Javadocs中查找阅读器
:
然后它进入循环,line==72,所以它进入循环:
for(int i=0;i<line;i++)
…做出“0小于72吗?是的,所以我将进入循环块”的决定。
然后,每当它读取一个字符时,行
的值就会变为另一个整数,每个时间循环都围绕i
递增。因此,循环表示“只要字符的ASCII值大于我计算的迭代次数,就继续执行”。
H
e
l
l
o
J
a
v
a
这不是你想要的:
in.read()
返回-1
。您可能已经学会了如何循环直到满足某个条件。println()
每个字符,因为这样会添加您不想要的换行符。使用print()
.您还应该查看reader.read(byte[]buffer)
方法,看看是否可以编写更大的代码块。
Type x = getSomehow();
while(someCondition(x)) {
doSomethingWith(x);
x = getSomehow();
}
Type x = value_of_x_which_meets_condition;
while(someCondition(x)) {
x = getSomehow();
doSomethingWith(x);
}
我对java比较陌生,对如何使用缓冲读取器读取文件很好奇。这是因为我正在上一门课,被分配做一个简单的ceaser密码,我应该解密一个文本文件,创建一个新文件,并将解密的文本放入该文件。我可以用扫描仪和一个10KB的小文件来完成,但是当我要测试的100MB的大文本文件的时候,它是非常慢的。这是我的代码,它应该是读取文件内容。 如果有人能给我指明正确的方向,那就太好了。 提前致谢
由来 在FileUtil中本来已经针对文件的读操作做了大量的静态封装,但是根据职责分离原则,我觉得有必要针对文件读取单独封装一个类,这样项目更加清晰。当然,使用FileUtil操作文件是最方便的。 使用 在JDK中,同样有一个FileReader类,但是并不如想象中的那样好用,于是Hutool便提供了更加便捷FileReader类。 //默认UTF-8编码,可以在构造中传入第二个参数做为编码 Fi
本文向大家介绍如何使Java ArrayList只读?,包括了如何使Java ArrayList只读?的使用技巧和注意事项,需要的朋友参考一下 您可以使用Collections接口的unmodifiableList()方法使集合不可修改。 示例 输出结果
问题内容: 使用JPA将实体设为只读的正确方法是什么?我希望我的数据库表永远不会以编程方式进行修改。 我想我知道我应该用锁定我的对象。从数据库检索后,是否可以使用注释使我的实体直接锁定?还是我必须弄乱并覆盖该特定实体的通用DAO? 问题答案: 一种解决方案是使用基于字段的注释,将字段声明为,并仅建议公共获取者。这样做,您的对象无法更改。 (此解决方案不是特定于实体的,它只是构建不可变对象的一种方法
问题内容: 我有以下代码: 和此web.xml(缩短了程序包并更改了名称,但外观相同) 我想在过滤器之后调用Servlet。我希望可以做到这一点,但是我总是会遇到以下错误: 问题答案: 你可能开始使用 in 使用HttpServletRequest : 你的servlet尝试调用相同的请求,这是不允许的。你需要做的是使用制作请求正文的副本,因此你可以使用多种方法读取它。
问题内容: 有点卡在这里,可能需要您的帮助。我想一次阅读几个BLE特性,有人建议为此使用PriorityQueue。我已经知道所有的uuid,等等。只需要一种同时读取多个uuid的方法。谁能解释它到底是什么样子?也许还有另一个更简单的解决方案? 在此先感谢,这是我的代码: 更新: 即使将它们放在不同的线程上,它仍然仍然只对一个gatt.readCharacteristic(…)做出反应。如下所示: