当前位置:首页 » 编程语言 » java行读取

java行读取

发布时间: 2022-06-10 05:19:35

java 按行读取一个文件,存在字符串数组里,一个元素对应一行,再将这个数组按行输出到一个新的文件里

java 按行读取一个文件,存在字符串数组里,一个元素对应一行,再将这个数组按行输出到一个新的文件里,代码如下:

packagefoo;

importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileInputStream;

importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.io.OutputStreamWriter;
importjava.util.ArrayList;
importjava.util.List;

/**
*Helloworld!
*
*/
publicclassApp
{
publicstaticvoidmain(String[]args)
{
FilereadFile=newFile("D://home/a.txt");
InputStreamin=null;
InputStreamReaderir=null;
BufferedReaderbr=null;

OutputStreamout=null;
OutputStreamWriterow=null;
BufferedWriterbw=null;
try{
//用流读取文件
in=newBufferedInputStream(newFileInputStream(readFile));
//如果你文件已utf-8编码的就按这个编码来读取,不然又中文会读取到乱码
ir=newInputStreamReader(in,"utf-8");
br= newBufferedReader(ir);
Stringline="";
//定义集合一行一行存放
List<String>list=newArrayList<String>();
//一行一行读取
while((line=br.readLine())!=null){
System.out.println(line);
list.add(line);
}
//将集合转换成数组
String[]arr=list.toArray(newString[list.size()]);

//写入新文件
FilenewFile=newFile("D://home/b.txt");
if(!newFile.exists()){
newFile.createNewFile();
}

out=newBufferedOutputStream(newFileOutputStream(newFile));
//这里也可以给定编码写入新文件
ow=newOutputStreamWriter(out,"gb2312");
bw=newBufferedWriter(ow);
//遍历数组吧字符串写入新文件中
for(intx=0;x<arr.length;x++){
bw.write(arr[x]);
if(x!=arr.length-1){
//换行
bw.newLine();
}

}
//刷新该流的缓冲,这样才真正写入完整到新文件中
bw.flush();
}catch(Exceptione){

e.printStackTrace();
}finally{
//一定要关闭流,倒序关闭
try{
if(bw!=null){
bw.close();
}
if(ow!=null){
ow.close();
}
if(out!=null){
out.close();
}
if(br!=null){
br.close();
}
if(ir!=null){
ir.close();
}
if(in!=null){
in.close();
}
}catch(Exceptione2){

}

}

}
}

❷ java中按行读取文本,并提取文本中包含有特定词语的行

具体实现
//读取一个文本的字符流
BufferedReader in = new BufferedReader(new FileReader("F:\\json.txt"));
String line = null;
//定义一个空字符串来接受读到的字符串
String str="";
//循环把读取到的字符赋给str
while((line = in.readLine())!=null)
{
str+=line;
}

System.out.println("str="+str);
//判断str中是否有EFG子串,为true则说明有。进去if语句
if(str.contains("EFG")){
System.out.println("yes!");
//取得子串的初始位置
int i=str.indexOf("EFG");
//根据的要取的内容后多少字符+多少个
String strEFG=str.substring(i,i+3);
System.out.println("strEFG="+strEFG);
}

❸ java如何读取指定行的数据

读取文件指定行要用到类LineNumberReader,它是跟踪行号的缓冲字符输入流,其基类是BufferedReader。。它有两个构造方法:
public LineNumberReader(Reader in)
使用默认输入缓冲区的大小创建新的行编号 reader,默认输入缓冲区的大小为8096个字节。
pulbic LineNumberReader(Reader in,int size)
创建新的行编号 reader,将字符读入给定大小的缓冲区。
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
public class ReadSelectedLine{
/**
* 读取文件指定行。
*/
public static void main(String[] args) throws IOException {
// 指定读取的行号
int lineNumber = 12;
// 读取文件
File sourceFile = new
File("src/Chapter08/ReadSelectedLine.java");
// 读取指定的行
readAppointedLineNumber(sourceFile, lineNumber);
// 获取文件的内容的总行数
System.out.println(getTotalLines(sourceFile));
}
// 读取文件指定行。
static void readAppointedLineNumber(File sourceFile, int lineNumber)
throws IOException {
FileReader in = new FileReader(sourceFile);
LineNumberReader reader = new LineNumberReader(in);
String s = reader.readLine();
if (lineNumber < 0 || lineNumber > getTotalLines(sourceFile)) {
System.out.println("不在文件的行数范围之内。");
}
{
while (s != null) {
System.out.println("当前行号为:"
+ reader.getLineNumber());
reader.setLineNumber(20);
System.out.println("更改后行号为:"
+ reader.getLineNumber());
System.out.println(s);
System.exit(0);
s = reader.readLine();
}
}
reader.close();
in.close();
}
// 文件内容的总行数。
static int getTotalLines(File file) throws IOException {
FileReader in = new FileReader(file);
LineNumberReader reader = new LineNumberReader(in);
String s = reader.readLine();
int lines = 0;
while (s != null) {
lines++;
s = reader.readLine();
}
reader.close();
in.close();
return lines;
}
}

❹ java中如何读取文件中特定行的内容

packagecom.lwj.demo;

importjava.io.*;
{
publicstaticvoidmain(String[]args)throwsException{
RandomAccessFilefile=newRandomAccessFile("file","rw");
//以下向file文件中写数据
file.writeInt(20);//占4个字节
file.writeDouble(8.236598);//占8个字节
file.writeUTF("这是一个UTF字符串");//这个长度写在当前文件指针的前两个字节处,可用readShort()读取
file.writeBoolean(true);//占1个字节
file.writeShort(395);//占2个字节
file.writeLong(2325451l);//占8个字节
file.writeUTF("又是一个UTF字符串");
file.writeFloat(35.5f);//占4个字节
file.writeChar('a');//占2个字节

file.seek(0);//把文件指针位置设置到文件起始处

//以下从file文件中读数据,要注意文件指针的位置
System.out.println("——————从file文件指定位置读数据——————");
System.out.println(file.readInt());
System.out.println(file.readDouble());
System.out.println(file.readUTF());

file.skipBytes(3);//将文件指针跳过3个字节,本例中即跳过了一个boolean值和short值。
System.out.println(file.readLong());

file.skipBytes(file.readShort());//跳过文件中“又是一个UTF字符串”所占字节,注意readShort()方法会移动文件指针,所以不用加2。
System.out.println(file.readFloat());
}
}

❺ java怎么从文件中按行读取,并把每一行分别赋值给不同的变量

这里通过一个工具类可以取出一个文件的所有行,最后获得一个行的数组。如有需要,当然可以把各行数据赋值给对应的变量了

❻ java如何实现按行读取键盘输入

使用system.in.read可以读取键盘的输入,但是一般不会这样去操作,可以使用java.util.scanner来配合system.in来进行数据的操作,举例如下:
scanner
in=new
scanner(system.in);
string
readline
=
in.nextline();
//读取键盘输入的一行(以回车换行为结束输入)

❼ 如何用java按行读取文本文件

File file = new File("文件地址");
Scanner scanner = new Scanner(file);
String lineContent = null;
while(scanner.hasNextLine()){//如果有下一行
lineContent = scanner.nextLine();//读取下一行内容
}
scanner.close();//关闭Scanner

❽ Java怎么读取文件的任意行

java中没有指定行的方法。
只能挨个读取。如果你想快速提取。而且文件又不是很大的话,就用LIST吧。

❾ java 按行读取txt文件的数字

可以通过Java的IO流实现txt文本的读取,然后用readline实现按行读取。具体代码如下:

packagetest;

importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.IOException;
importjava.util.ArrayList;
importjava.util.List;

publicclassTest{
publicstaticdouble[]writeToDat(Stringpath){
Filefile=newFile(path);
Listlist=newArrayList();
double[]nums=null;
try{
BufferedReaderbw=newBufferedReader(newFileReader(file));
Stringline=null;
//因为不知道有几行数据,所以先存入list集合中
while((line=bw.readLine())!=null){
list.add(line);
}
bw.close();
}catch(IOExceptione){
e.printStackTrace();
}
//确定数组长度
nums=newdouble[list.size()];
for(inti=0;i<list.size();i++){
Strings=(String)list.get(i);
nums[i]=Double.parseDouble(s);
}
returnnums;
}
publicstaticvoidmain(String[]args){
Stringpath="d:/file4.txt";
double[]nums=writeToDat(path);
for(inti=0;i<nums.length;i++){
System.out.println(nums[i]);
}
}
}

❿ Java中如何一行行地读文件

importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
publicclassReadTest{
publicstaticvoidmain(String[]args){
//读控制台输入的文字!
BufferedReaderbr=null;
Stringstr=null;
try{
br=newBufferedReader(newInputStreamReader(System.in));
while(true){
str=br.readLine();
if(str.equals("886"))
break;
System.out.println(str);
}
//读文本文件..
br=newBufferedReader(newFileReader(newFile("C:\Users\Administrator\Desktop\地址.txt")));
for(str=br.readLine();str!=null;str=br.readLine()){
//打印你读的文本数据!
System.out.println(str);
}
}catch(IOExceptione){
e.printStackTrace();
}
}
}

核心就是:readLine()方法,一行一行的读!

热点内容
怎样删除小视频文件夹 发布:2024-05-19 05:49:29 浏览:588
开启php短标签 发布:2024-05-19 05:44:12 浏览:473
android各国语言 发布:2024-05-19 05:42:54 浏览:246
微信什么资料都没怎么找回密码 发布:2024-05-19 05:35:34 浏览:906
填志愿密码是什么 发布:2024-05-19 05:30:23 浏览:317
城堡争霸自动掠夺脚本 发布:2024-05-19 05:22:06 浏览:203
asp编程工具 发布:2024-05-19 05:20:36 浏览:142
insertpython 发布:2024-05-19 05:12:26 浏览:244
androidant编译 发布:2024-05-19 05:04:11 浏览:987
按键脚本优化 发布:2024-05-19 04:59:57 浏览:751