java io面试问题题目,io流问题

导读:JavaI/O流练习题,JavaI/O流练习题[]选择题1.请问如下哪些类是FileOutStream类的正确构造方法形式?A:FileOutStream(FileDescriptorfd)B:FileOutStream(Stringpath,booleanb)C:FileOutStream(booleanb)D:FileOutStream()E:FileOutStream(FilJava I/O流练习题 [] 选择题 1.请问如下哪些类是FileOutStream类的正确构造方法形式? A: FileOutStream(FileDescriptor fd) B: FileOutStream(String path, boolean b) C: FileOutStream(boolean b) D: FileOutStream() E: FileOutStream(File file) 答:
2.请问下列类哪些是定义在java.io包中的抽象类? A: InputStream B: OutputStream C: PrintStream D: Reader E: FileInputStream F: FileWriter 答:
3. 请问下列哪种描述是正确的? A: InputStream和OutputStream是基于字节流的。 B: Reader和Writer是基于字符流的。 C: ObjectInputStream和ObjectOutputStream是不支持序列化对象的。 D: Reader和Writer是支持对象序列化的。
E: 以上说法都不对。 答:
4. 如下哪种描述是正确的? A: Writer类可以使用不同的字符集编码向输出流写入字符。 B: Writer类可以向输出流写入unicode字符。 C: Writer类提供向输出流写入任何Java基本数据类型的方法。 D: Writer类提供向输出流写入对象类型数据的方法。 E: 以上说法都不对。 答:
5.给出写文件的代码如下:(不考虑异常) FileOutputStream fout=new FileOutputStream(“datafile”); DataOutputStream dout=new DataOutputStream(fout); for(int i=0;i<500;i++) {
dout.writeInt(i); } dout.close(); fout.close(); 请问如下哪些代码可以从datafile中读出刚写入的数据? A: FileInputStream fin=new FileInputStream(“datafile”); DataInputStream din=new DataInputStream(fin); din.readInt(); B: FileReader fr=new FileReader(“datafile”); fr.readInt(); C: PipeInputStream pin=new PipeInputStream(“datafile”); pin.readInt(); D: FileReader fr=new FileReader(“datafile”); DataInputStream din=new DataInputStream(fr); din.readInt(); 答:
[] 编程题1: 编写一个文件功能类 FileFunction,有如下方法: 1. public static void copyFile(String fromFileName, String toFileName) throws FileException 功能将原文件拷贝到目标文件中,如果原文件不存在,抛出FileException异常。 2. public static boolean isFileExist(String fileName) 判断文件是否存在 3. public static void deleteFile(String name) throws FileException 删除文件方法。 [] 编程题2: 编写一个文本分析类TextProcessor 有如下方法: 1. public int getWordNum(String fileName) throws FileException 统计一个含有英文单词的文本文件的单词个数。 2. public void getWordNumFile(String formfileName, String word) throws Exception 统计指定的文件中含有指定单词的个数。
包含总结汇报、文档下载、旅游景点、出国留学、IT计算机、专业文献、外语学习、党团工作、资格考试以及练习13
Java类IO流练习题等内容。
相关内容搜索Java I/O流练习题 [] 选择题 1.请问如下哪些类是FileOutStream类的正确构造方法形式? A: FileOutStream(FileDescriptor fd) B: FileOutStream(String path, boolean b) C: FileOutStream(boolean b) D: FileOutStream() E: FileOutStream(File file) 答:
2.请问下列类哪些是定义在java.io包中的抽象类? A: InputStream B: OutputStream C: PrintStream D: Reader E: FileInputStream F: FileWriter 答:
3. 请问下列哪种描述是正确的? A: InputStream和OutputStream是基于字节流的。 B: Reader和Writer是基于字符流的。 C: ObjectInputStream和ObjectOutputStream是不支持序列化对象的。 D: Reader和Writer是支持对象序列化的。
E: 以上说法都不对。 答:
4. 如下哪种描述是正确的? A: Writer类可以使用不同的字符集编码向输出流写入字符。 B: Writer类可以向输出流写入unicode字符。 C: Writer类提供向输出流写入任何Java基本数据类型的方法。 D: Writer类提供向输出流写入对象类型数据的方法。 E: 以上说法都不对。 答:
5.给出写文件的代码如下:(不考虑异常) FileOutputStream fout=new FileOutputStream(“datafile”); DataOutputStream dout=new DataOutputStream(fout); for(int i=0;i<500;i++) {
dout.writeInt(i); } dout.close(); fout.close(); 请问如下哪些代码可以从datafile中读出刚写入的数据? A: FileInputStream fin=new FileInputStream(“datafile”); DataInputStream din=new DataInputStream(fin); din.readInt(); B: FileReader fr=new FileReader(“datafile”); fr.readInt(); C: PipeInputStream pin=new PipeInputStream(“datafile”); pin.readInt(); D: FileReader fr=new FileReader(“datafile”); DataInputStream din=new DataInputStream(fr); din.readInt(); 答:
[] 编程题1: 编写一个文件功能类 FileFunction,有如下方法: 1. public static void copyFile(String fromFileName, String toFileName) throws FileException 功能将原文件拷贝到目标文件中,如果原文件不存在,抛出FileException异常。 2. public static boolean isFileExist(String fileName) 判断文件是否存在 3. public static void deleteFile(String name) throws FileException 删除文件方法。 [] 编程题2: 编写一个文本分析类TextProcessor 有如下方法: 1. public int getWordNum(String fileName) throws FileException 统计一个含有英文单词的文本文件的单词个数。 2. public void getWordNumFile(String formfileName, String word) throws Exception 统计指定的文件中含有指定单词的个数。posts - 17,&
comments - 8,&
trackbacks - 0
IO流初学者在学习时都有一点迷糊,今天我们就讲讲IO流,希望通过讲解可以帮助大家
IO流分为字节流,字符流,缓冲流.我们只要记住这三个就可以了.
     1*字节流有:字节输入流(FileInputStream),字节输出流(FileOutputStream).
     2*字符流有:字符输入流(FileReader),当让也有字符输出流(FileWriter);
  字节流&&字节输入流,无非就是读取文件,初学者可以这么认为,把文档的读取出来放在缓冲区里(假设有这个缓冲区)
  &&&&&&& &&字节输出流,也就是从这个假设的缓冲区里把读取出来
  字符流&&也是一个道理.不过字符流只可以操作纯文本文件,他被开发出来就是用来操作文本文件的,什么是纯文本文件呢??
       纯文本文件也就是可以用记事本打开的文件.
       后期,我们用到字符流的地方,无非就是操作这些纯文本文件,读取文件类容,在控制台打印啊,或者手写一个字符串录入到文档中等;
  一:通过习题我们来认识字节流:
    今天就和大家分享一下字节流拷贝文件.将会用上java基础阶段字节流的所有方法
    /*
     *键盘输入一个文件夹地址,将其中的文件拷贝到另一个文件夹下.只拷贝.java文件
     *分析:1.拿到这个题,我们还是大问题变成小问题解决
     * & & & (1)键盘输入&&&要判断是否是一个正确的文件夹路径&&我们可以把输入的字符串封装到File中用exists()判断是否存在返回值boolean类型
     * & & & (2)拿到正确的文件夹地址.我们开始选择用什么流拷贝呢,刚才我也说了字符流适合操作纯文本文件,所以我们遇到非纯文本的适合直接选择字节流
     * & & & (2_1)有人会问,那缓冲流呢??别急,其实缓冲流是服务字节流,字符流的,你可以认为他就一个8缸的汽车发动机,让汽车变飞机的快感,说道这里你也应该明白
     *     缓冲流是干嘛的吧,也就是在字节字符流读取写入文件的时候速度加快用的,其实底层是一个缓冲区,8*1024个字节.
     *   (3)拷贝文件夹的时候,文件夹中不可能只有文件也有子文件夹,我们这里要用到递归,天哪,好麻烦啊,一会我们做代码你会发现,其实也就那样
     * & & (4)那文件夹中又有文件夹又有文件,那我们怎么分辨呢?& File给我提供了判断的方法:isFile()判断文件.isDirectory()判断文件夹
     *   (5)那获取到他们要讲他们先放在那里呢?把这些文件夹和文件放在数组里?可是没有这个方法啊,这个File给我提供了专门的数组File[]
     */
    来吧&开始做题
    第一步:键盘输入&&&要判断是否是一个正确的文件夹路径
private static File getScanner() {      //键盘输入
Scanner sc = new Scanner(System.in);
System.out.println("请输入文件夹的路径:");
while(true){
String string = sc.nextLine();          //封装键盘输入的文件地址
File file = new File(string);          //判断文件夹地址是否存在
if(!file.exists()){
System.out.println("你输入的文件路径不存在,请重新输入:");          //判断是否为文件地址
}else if(file.isFile()){
System.out.println("你输入的是文件,不是文件夹,请重新输入:");
          //最后返回文件夹地址
  第二步:拷贝
private static void copy(File src, File dest) throws IOException {
//拿到刚才输入的两个文件夹地址
源文件地址为src
要接收的文件夹的地址为dest
//把源文件夹中的文件,字文件夹存放到File数组中src.listFiles();方法获取
File[] files = src.listFiles();
//判断数组是否为空
if(files!=null){
//遍历数组
for (File file : files) {
//如果是文件
并且以java结尾
geName()是拿到文件夹或者文件的名字字符串
if(file.isFile() && file.getName().endsWith(".java")){
//符合条件的复制
//缓冲流来了啊
记得加速的
后面跟上我们的字节流,别装上了发动机不要车了啊
//字节输入流
对于初学者来说:可以认为读取文件到缓冲区
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
//字节输出流
把缓冲区的内容拿出来给另外一个对象
这里我们讲一下为什么在new File(这里存放的是文件地址)
要接收的文件夹的地址为dest
加上 文件的地址
\\xxx.java 拼接成一个完整的文件地址
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dest,file.getName())));
//这里建一个字节数组
其实也是让文件拷贝的更加快一点
byte[] by = new byte[1024*8];
拷贝结束了,没有了
数组就返回-1;
int len=0;
while((len=bis.read(by))!=-1){
//往里面写
bos.write(by, 0, len);
bos.close();
bis.close();
}else if(file.isDirectory()){
//建立一个remove()方法
判读文件夹中可包含java文件 不包含文件夹不复制过来
if(remove(file)){
File newfile = new File(dest,file.getName());
if(!newfile.exists()){
//建立文件夹
文件夹中的文件夹
newfile.mkdirs();
copy(file, newfile);
private static boolean remove(File file) {
File[] files = file.listFiles();
//先判断文件夹是否为空
为空返回false
if(files!=null){
for (File file2 : files) {
//底层文件夹中含有符合条件的文件
if(file2.isFile() && file2.getName().endsWith(".java")){
return true;
//判断是否是文件夹
//底层是否有java文件
}else if(file2.isDirectory() && remove(file2)){
return true;
return false;
上面的代码可能一时理解起来比较难消化,时间原因,下次我更新一个比较详细的
&第三步main()方法
public static void main(String[] args) throws IOException {
File src = getScanner();
File dest = getScanner();
copy(src,dest);
字符流&&题目
/*&* 文档中第一行与最后一行交换&*&&&&& 第二行与倒数第二行交换&*&*/
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("abc\\b.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("abc\\c.txt"));
ArrayList&String& list = new ArrayList&&();      //字节流我们说了用len!=-1做索引      //文档有一个方法可以一行一行的读取,当然可以想在字节流那样读取
String line=null;
while((line=br.readLine())!=null){
list.add(line);
br.close();
//换文档中第一行与最后一行交换
for (int i = 0; i&list.size()/2 ;i++) {
String string = list.get(i);          //只需要交换集合长度/2次
list.set(i, list.get(list.size()-1-i));
list.set(list.size()-1-i, string);
//遍历并且把字符串写到文件中
for (String string : list) {
bw.write(string);
bw.newLine();
}      //关流
bw.close();
今天就说这么多了,回头看我自己写的........我发初学IO的应该不知道我在说啥.下次一定来一个详细的,说真的IO流要细说,有的说的,不过大家记住IO在初级阶段无非就
是操作文件夹文件,拷贝删除,写,读.字符流只读只写拷贝自己流,不要忘记缓冲流这个加速器.谢谢大家
阅读(...) 评论()java Io流的乱码问题-CSDN论坛
java Io流的乱码问题
我在eclipse中,用Io流向文件谢了一些文字,并且在preferences里面设置了编码格式,还是出现了乱码问题,这是什么原因啊,该怎么解决,求赐教。
看看生成的文件的编码,在看看写的字符串的编码
你可以在你写入文件的时候设置编码格式
public&class&Test
&&&&public&static&void&main&(&String[]&args&)&throws&Exception
&&&&&&&&String&id&=&"0001";
&&&&&&&&String&text&=&"hhh";
&&&&&&&&String&line&=&
&&&&&&&&//&自行调整charset即可
&&&&&&&&BufferedReader&br&=&new&BufferedReader&(new&InputStreamReader&(new&FileInputStream&("c:/content1.txt"),&"GBK"));
&&&&&&&&BufferedWriter&bw&=&new&BufferedWriter&(new&OutputStreamWriter&(new&FileOutputStream&("c:/content1.txt"),&"UTF-8"));
&&&&&&&&while&((&line&=&br.readLine&()&)&!=&null)
&&&&&&&&&&&&if&(line.contains&(id))
&&&&&&&&&&&&&&&&line&=&id&+&"&"&+&
&&&&&&&&&&&&bw.write&(line);
&&&&&&&&&&&&bw.newLine&();
&&&&&&&&bw.flush&();
&&&&&&&&bw.close&();
&&&&&&&&br.close&();
再试下,出现乱码是挺烦人的
能不能把你的代码发出来看看!
写的编码和文件保存的编码不一致
用什么软件打开显示乱码?例如
1.&用记事本
2.&先用&Java&写入文件,在用&Java&读取后乱码
引用&3&楼&qq_&的回复:public&class&Test
&&&&public&static&void&main&(&String[]&args&)&throws&Exception
&&&&&&&&String&id&=&"0001";
&&&&&&&&String&text&=&"hhh";
&&&&&&&&String&line&=&
&&&&&&&&//&自行调整charset即可
&&&&&&&&BufferedReader&br&=&new&BufferedReader&(new&InputStreamReader&(new&FileInputStream&("c:/content1.txt"),&"GBK"));
&&&&&&&&BufferedWriter&bw&=&new&BufferedWriter&(new&OutputStreamWriter&(new&FileOutputStream&("c:/content1.txt"),&"UTF-8"));
&&&&&&&&while&((&line&=&br.readLine&()&)&!=&null)
&&&&&&&&&&&&if&(line.contains&(id))
&&&&&&&&&&&&&&&&line&=&id&+&"&"&+&
&&&&&&&&&&&&bw.write&(line);
&&&&&&&&&&&&bw.newLine&();
&&&&&&&&bw.flush&();
&&&&&&&&bw.close&();
&&&&&&&&br.close&();
再试下,出现乱码是挺烦人的
看看在那些地方需要转码,多调试下
谢谢各位了,问题已经解决了

我要回帖

更多关于 java io流读取文件 的文章

 

随机推荐