亲宝软件园·资讯

展开

java文件输入输出

王小王_1 人气:0

一、实验目的

二、实验代码

1.使用Java的输入输出

使用Java的输入、输出流将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。

package 作业练习.test4;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.io.File;
public class FileScanner {
public static void main(String[] args) throws Exception{
System.out.print("请输入文件名:");
Scanner reader = new Scanner(System.in);
String fileName = reader.nextLine();
File f = new File("E:\\Intellij IDEL\\project\\src\\"+fileName);
Scanner fi = new Scanner(f);
//输出:
String sLine = null;
int index = 0;
while(fi.hasNext()) {
sLine = fi.nextLine();
System.out.println(++index + " " + sLine);
try {
BufferedWriter out = new BufferedWriter(new FileWriter("test1.txt"));
out.write(index + " " + sLine);
} catch (IOException e) {
}
}
System.out.println("文件创建成功!");
}
}

2.使用RandomAccessFile流将一个文本文件倒置读出

package 作业练习.test4;
import java.io.*;
public class test2 {
public static void main(String []args) throws IOException
{
RandomAccessFile file =new RandomAccessFile("E:\\Intellij IDEL\\project\\src\\test4\\test.txt","r");
long len =file.length();
while(0!=len--)
{
file.seek(len);
char ch =(char)file.read();
System.out.print(ch);
}
file.close();
}
}

3.请分别使用不带缓冲区和带缓冲区的字节流复制图片(或者音频或者视频)文件

要求:

package 作业练习.test4;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class App14_3 {
public static void main(String[] args) {
File reader = new File("E:\\Intellij IDEL\\project\\src\\test4\\1.png");
File writer = new File("\\Intellij IDEL\\project\\src\\test4\\2.png");
FileInputStream fis = null;
try {
fis = new FileInputStream(reader);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(writer);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
BufferedOutputStream bos = new BufferedOutputStream(fos);
byte[] b = new byte[256];
int len = -1;
try {
while ((len = bis.read(b)) != -1) {
bos.write(b, 0, len);
bos.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bos.close();
fos.close();
bis.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package 作业练习.test4;
import java.io.*;
public class test3 {
public static void main(String []args) throws IOException
{
// 带缓冲区的字节流拷贝一个文本文件
FileInputStream fin =new FileInputStream("E:\\Intellij IDEL\\project\\src\\test4\\test.txt");
FileOutputStream fout =new FileOutputStream("E:\\Intellij IDEL\\project\\src\\test4\\test1.txt");
byte buf[] =new byte[2014]; //创建字节数组,作为临时缓冲
if(fin.read(buf)!=-1)
{
fout.write(buf);
}
System.out.println("文件复制成功");
fin.close();
fout.close();
/*带缓冲区的字符流拷贝一个文本文件
FileReader fin =new FileReader("E:\Intellij IDEL\project\src\test4\test2.txt");
BufferedReader din=new BufferedReader(fin) ;
FileWriter fou =new FileWriter("E:\Intellij IDEL\project\src\test4\test.txt");
BufferedWriter dou =new BufferedWriter(fou);
char c[]=new char[1024]; //创建字符数组
din.read(c);
fou.write(c);
System.out.println("文件复制成功");
din.close();
fou.close();
fin.close();
dou.close();
*/
}
}

4.请分别使用不带缓冲区和带缓冲区的字符流复制文本文件

要求:

package 作业练习.test4;
import java.io.*;
public class App14_5 {
static App14_5 test=new App14_5();
public static String openFile(String fileName){ //打开文件
StringBuffer sb=null;
FileInputStream fis=null;
try {
fis=new FileInputStream(fileName); ; //实例化输入流对象
byte b[]=new byte[1024];
int len;
sb=new StringBuffer();
while( (len = fis.read(b))!=-1 ){ //读文件并判断是否到达文件尾
String str=new String(b,0,len);
sb.append(str);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
}
return sb.toString();
}
public static boolean saveFile(String fileName,String content) throws IOException{
boolean state=false;
FileOutputStream fos=null;
try {
fos=new FileOutputStream(fileName); //实例化输出流对象
//把content写入到文件中
state=true;
} catch (Exception e) {
e.printStackTrace();
}finally {
}
return state;
}
public static boolean copyFile(String sourceFileName,String destinationFifleName){
boolean sate =false;
InputStream fis=null;
OutputStream fos=null;
try {
fis=new FileInputStream(sourceFileName);
fos=new FileOutputStream(destinationFifleName);
int len;
byte buffer[]=new byte[1024];
//此处请填写多行
len=fis.read(buffer);
String str1=new String(buffer,0,len);
byte[] b = str1.getBytes();
fos.write(b);
sate =true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(fis!=null) fis.close();
if(fos!=null) fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return sate;
}
public static void main (String args[]) {
App14_5 test=new App14_5();
test.copyFile("E:\\Intellij IDEL\\project\\src\\test4\\test.txt",
"E:\\Intellij IDEL\\project\\src\\test4\\test3.txt");
}
}
}

加载全部内容

相关教程
猜你喜欢
用户评论