黑马程序员技术交流社区
标题:
如何最简单地按行读取txt文件
[打印本页]
作者:
温暖的小白
时间:
2013-4-11 09:31
标题:
如何最简单地按行读取txt文件
br = new BufferedReader(new InputStreamReader(new FileInputStream("b.txt")));
然后
br.readLine();这样可以读取一行
但我觉得这样太复杂了,又是BufferedReader、InputStreamReader还有FileInputStream
我只想知道,如何非常简单地读取一行。
不知道FileReader可以不可以。
作者:
我手心里的宝
时间:
2013-4-11 09:39
如果是纯文本文档,就是采用FileReader呀
FileReader fr = new FileReader("b.txt");
fr.readLine();这样就可以了呀
你没有看字符流吗,毕老师有讲呀
作者:
梁航斌
时间:
2013-4-11 09:49
new InputStreamReader();是转换成字节流,若果已经确定只传字符的话就没必要转换了,用FileReader就可以了,不过BufferedReader要高效,他有缓冲区。
所以这种时候就不要省了。
作者:
赵晓东
时间:
2013-4-11 09:51
楼上是在开玩笑嘛?FileReader没有readLine方法吧
首先要确定你读取的是文本文件,然后这样就可以了
BufferedReader br = new BufferedReader(new FileReader("文件路径"));
String line = null;
while((line = br.readLine()) != null)
{
System.out.println(line);
}
作者:
李大伟
时间:
2013-4-11 11:40
本帖最后由 李大伟 于 2013-4-11 12:36 编辑
同意楼上的,首先得确定读取的文本路径,读和写一个道理
这个是照老师讲的 写的
//定义一个FileReader 用来读取F:\\buf.txt 中字符流
FileReader fr = new FileReader("F:\\buf.txt");
//因为要读一行 ,需要调用BufferedReader 中 readLine 方法,并且提高效率,所以 定义 BufferedReader 读取 fr
BufferedReader bufr =new BufferedReader(fr);
//定义一个空的 字符串用来存放 读一行的方法
String line = null;
//初始化计数器
int count =1;
//一行一行的 循环读取
while((line=bufr.readLine())!=null){
//循环输出每行的内容
System.out.println("读取到a.txt第"+count+"内容是:"+line);
count++;
}
作者:
刘林虎
时间:
2013-4-11 11:58
String name = "abc.java.txt";
String extName = name.substring(name.lastIndexOf(".") + 1);//扩展名
System.out.println(extName);
复制代码
这个很简单那
作者:
杨杨
时间:
2013-4-11 12:07
本帖最后由 杨杨 于 2013-4-11 12:11 编辑
只要封装到BufferRead 缓冲流中就能安行读了其他都是浮云啊
FileRead内部就是封装的InputStream
public FileReader(String fileName) throws FileNotFoundException {
super(new FileInputStream(fileName));
}这是我跟踪的源码
他们的区别就是能否指定编码如
直接用BufferRead 封装FileReader就可以
作者:
Sword
时间:
2013-4-11 12:25
package com.itheima;
/**
* 第七题: 编写程序获取已知文件的扩展名.
* 注意: abc.txt的扩展名是txt, abc.java.txt的扩展名也是txt.
*@author Sword
*/
import java.io.File;
import java.io.IOException;
public class Test7 {
public static void main(String args[]) {
//创建file对象,读入abc.txt
File file = new File("abc.txt");
File file1 = new File("abc.java.txt");
if (!file.exists()) {
//try-catch抛出异常
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//获取file的文件名,赋值给fname
String fname = file.getName();
String fname1 = file1.getName();
//用substring截取文件名,lastIndexOf(".")是从最后一个.开始,长度为length的字符作为后缀名
System.out.println(fname + ":扩展名是:"
+ fname.substring(fname.lastIndexOf(".") + 1, fname.length()));
System.out.println(fname1 + ":扩展名是:"
+ fname.substring(fname.lastIndexOf(".") + 1, fname.length()));
}
}
复制代码
代码和注释已经给出,希望对你有帮助
作者:
王军行
时间:
2013-4-11 12:31
貌似Scanner类有简单的方法,你去看看API的uitl包的Scanner类,我看好多人用这个类,可以扫描流和文件,功能横强大
作者:
符立波
时间:
2013-4-11 12:46
学习了....
作者:
黄玉昆
时间:
2013-4-11 19:47
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
作者:
蓝色骨头
时间:
2013-4-11 21:43
FileReader没有readline方法
public static void main(String[] args) throws IOException
{
//创建一个读取流对象和文件相关联。
FileReader fr = new FileReader("buf.txt");
//为了提高效率。加入缓冲技术。将字符读取流对象作为参数传递给缓冲对象的构造函数。
BufferedReader bufr = new BufferedReader(fr);
String line = null;
while((line=bufr.readLine())!=null)
{
System.out.print(line);
}
bufr.close();
}
复制代码
使用javaIO是需要考虑的。
1. 根据数据类型选择相应的流体系。
2. 根据数据类型选择相应的输入输出流对象。
3. 是否需要在字节流和字符流之间转换。
4. 根据需要使用修饰器提高效率或使用方便的功能选择过滤器。
作者:
朱德帅
时间:
2013-4-11 22:43
import java.util.*;
import java.io.*;
class Test1
{
public static void main(String[] args) throws Exception
{
//定义一个文件扫描器
Scanner s = new Scanner(new File("f:/java/1.java"));
//和遍历集合很像,一行一行遍历
while(s.hasNextLine()){
String line = s.nextLine();
System.out.println(line);
}
}
}
复制代码
作者:
王大斌
时间:
2013-4-11 22:53
使用打印流
PrintWriter
你去查看一下jdk中的用法
作者:
xtfgq
时间:
2013-4-11 23:00
谢谢楼主,深受启发
作者:
贾振凯
时间:
2013-4-11 23:48
本帖最后由 贾振凯 于 2013-4-11 23:52 编辑
王军行 发表于 2013-4-11 12:31
貌似Scanner类有简单的方法,你去看看API的uitl包的Scanner类,我看好多人用这个类,可以扫描流和文件,功 ...
:handshake
Scanner(FileInputStream fis)//不用转换流!
hasNextLong
()
nextLine
()
该方法返回的内容也不包括结尾处的行分隔符
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2