控制台输入与文件输入流问题

S1LentMoon 2016-12-25 10:14:38
首先,这是龙书附录中“一个完整的编译器前端”的部分代码
下面是源代码,其中peek是使用控制台输入
 void readch() throws IOException {peek = (char)System.in.read(); }

于是小弟想改成直接从txt文件中读取每个字符,就改成了如下
 void readch() throws IOException {
File file = new File("E:\\test.txt");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String line = null;
while((line = bufferedReader.readLine()) != null){
peek = (char)bufferedReader.read();
}
bufferedReader.close();

//peek = (char)System.in.read();
}


然而运行结果却是这样的

其中我的文本是这样的


实在是不知道怎么改了,寻求各位大佬们的帮助。

...全文
245 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
S1LentMoon 2016-12-27
  • 打赏
  • 举报
回复
引用 7 楼 m2200 的回复:
解决问题了吗?
谢谢,我的问题解决了。是我读入的位置写错了,后面还因为txt换行的问题卡了一会,才发现windows下得换行是\r\n,有点坑。 不过最后还是解决问题了。
爱睡觉的阿狸 2016-12-26
  • 打赏
  • 举报
回复
解决问题了吗?
爱睡觉的阿狸 2016-12-26
  • 打赏
  • 举报
回复
定义数组你需要这样float[] a = new float[100];
爱睡觉的阿狸 2016-12-26
  • 打赏
  • 举报
回复
float[100] a; java里面没有这种写法。
S1LentMoon 2016-12-26
  • 打赏
  • 举报
回复
引用 1 楼 m2200 的回复:
把main方法贴出来看看
如果感兴趣的话,我可以把整个文件发给您看看。。
S1LentMoon 2016-12-26
  • 打赏
  • 举报
回复
引用 1 楼 m2200 的回复:
把main方法贴出来看看
package main;
import java.io.*; import lexer.*; import parser.*;

public class Main {

	public static void main(String[] args) throws IOException {
		Lexer lex = new Lexer();
		Parser parse = new Parser(lex);
		parse.program();
		System.out.write('\n');
	}
}
还有好多个包。。
S1LentMoon 2016-12-26
  • 打赏
  • 举报
回复
package main;
import java.io.*; import lexer.*; import parser.*;

public class Main {

	public static void main(String[] args) throws IOException {
		Lexer lex = new Lexer();
		Parser parse = new Parser(lex);
		parse.program();
		System.out.write('\n');
	}
}
bcsflilong 2016-12-26
  • 打赏
  • 举报
回复
这是一个语法错误 定义数组的时候 应该是这样的 float[] a=new float[100];
miaoch 2016-12-26
  • 打赏
  • 举报
回复
首先你读取每个字符的写法就不对。你的循环条件里有readline。。然后又在循环体里面read 那你这样子 就会隔去一行 然后 读取剩余行的首字符。 并且你的写法会吧peek给不断冲掉,最后peek就是变成最后一行的首字符。。除非你把所有的文件贴出来 不然我真看不懂
S1LentMoon 2016-12-26
  • 打赏
  • 举报
回复
关于定义数组的问题,这其实是一个简单的编译器,跟文法有关吧。我用控制台输入这个测试的时候,是可以正确输出的。
S1LentMoon 2016-12-26
  • 打赏
  • 举报
回复
谢谢各位大佬的回答,目前还在努力解决中
爱睡觉的阿狸 2016-12-25
  • 打赏
  • 举报
回复
把main方法贴出来看看

51,395

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧