java filewriter干什么?java 种的File类是用来做什么的有什么用处(追加40分)
大家好,如果您还对java filewriter干什么不太了解,没有关系,今天就由本站为大家分享java filewriter干什么的知识,包括java 种的File类是用来做什么的有什么用处(追加40分)的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
java io里关于FileReader和FileWriter的操作问题
我知道你遇到乱码问题了,乱码问题是由于写入读取时所用的编码不一致,以及文件本身的编码导致的,这个参考程序你自己学习下,是我特意做的希望可以帮到你!
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.nio.channels.FileChannel;
import java.nio.ByteBuffer;
public class Test{
public static void main(String[] args) throws Exception{
//创建2个文件
File file1= new File("D://test1.txt");
File file2= new File("d://test2.txt");
file1.createNewFile();
file2.createNewFile();
//从键盘输入的字符写入test1.txt
FileWriter fout= new FileWriter(file1);
String str=null;
System.out.println("Please input a String:");
BufferedReader fin= new BufferedReader(new InputStreamReader(System.in));
str= fin.readLine();
System.out.println(str);
fout.write(str,0,str.length());
fout.flush();
fout.close();
fin.close();
//复制文件test1.txt的内容到test2.txt
//为了让你明白通道所以我这里用了2种读写入文件的方法
new Exam2().copy("D://test1.txt","d://test2.txt");
}
/**
*复制文件封装类
*@param url1
*@param url2
*@throws Exception
*/
public void copy(String url1, String url2) throws Exception{
FileInputStream input= new FileInputStream(url1);
FileChannel filechannel= input.getChannel();
FileOutputStream output= new FileOutputStream(url2);
FileChannel filechannel2= output.getChannel();
ByteBuffer buf= ByteBuffer.allocate(1024* 8);
while(filechannel.read(buf)!=-1){
buf.flip();
filechannel2.write(buf);
buf.clear();
}
input.close();
filechannel.close();
output.close();
filechannel2.close();
}
}
您的进步是我最大的动力,如果你觉得我回答的合理的话,请给我多加分。谢谢,如果不明白的话,请给我留言。大家相互学习啊!加油!
java 编程
写好了发你看下代码有点长我在1.5的环境下写的你在1.4环境下稍微改下就OK
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
/**
*@author Think
*
*/
public class vvvvvv
{
/**
*
*/
public vvvvvv()
{
// TODO Auto-generated constructor stub
}
public static void main(String[] args){
// statTimes("");
vvvvvv instance= new vvvvvv();
List<student> parseList= instance.parseTxt("d:\\mydat\\student2006.txt",",");
instance.modify(parseList,"MATH","APMA");
student mStudent= instance.query(parseList,"200607016");
System.out.println("birthday:"+ mStudent.getMajor());//打印结果显示专业已被修改APMA
instance.outputTxt(parseList,"d:\\outpd.txt",",");//修改后重新保存为txt文件
}
/**
* TODO//处理txt文档
*
*@param path txt文件路径
*@param regex分割标志这里是","
*@return return:学生对象集合list
*/
List<student> parseTxt(String path,String regex)
{
try
{
BufferedReader br= new BufferedReader(
new FileReader(new File(path)));
String line;
ArrayList<student> stulist= new ArrayList<student>();
while((line= br.readLine())!= null)
{
String[] ss= line.split(regex);
student s= new student();
s.setStuno(ss[0]);
s.setName(ss[1]);
s.setBirthday(ss[2]);
s.setSex(ss[3]);
s.setMajor(ss[4]);
stulist.add(s);
}
return stulist;
}
catch(Exception e)
{
// TODO: handle exception
e.printStackTrace();
return null;
}
}
/**
* TODO将修改后的学生对象集合输出到txt文件
*
*@param contents
*@param path
*@param regex
* return: void
*/
void outputTxt(List<student> list, String path,String regex)
{
try
{
if(list== null) return;
PrintWriter pw= new PrintWriter(new File(path));
Iterator<student> it= list.iterator();
while(it.hasNext())
{
student stu=(student) it.next();
StringBuffer sb= new StringBuffer();
sb.append(stu.getStuno());
sb.append(regex);
sb.append(stu.getName());
sb.append(regex);
sb.append(stu.getBirthday());
sb.append(regex);
sb.append(stu.getSex());
sb.append(regex);
sb.append(stu.getMajor());
pw.println(sb.toString());
}
pw.close();
}
catch(Exception e)
{
// TODO: handle exception
e.printStackTrace();
System.out.println("output to:"+ path+"failed!!!");
}
}
/**
* TODO
*
*@param list
*@param oldmajor旧专业名
*@param newmajor新修改专业名
*根据指定条件修改这里修改专业
*@return void
*/
void modify(List<student> list, String oldmajor,String newmajor)
{
if(list== null) return;
Iterator<student> iterator= list.iterator();
while(iterator.hasNext())
{
student s= iterator.next();
if(s.getMajor().equals(oldmajor))
s.setMajor(newmajor);
}
}
/**
* TODO通过学号查询学生
*@param list student集合
*@param no学号
*@return
*/
student query(List<student> list, String no)
{
if(list== null) return null;
Iterator<student> iterator= list.iterator();
while(iterator.hasNext())
{
student s= iterator.next();
if(s.getStuno().equals(no))
return s;
}
return new student();
}
}
/**
*@author Think
*
*/
class student
{
public student(String no, String name, String birthday, String sex, String major)
{
this.stuno= no;
this.name= name;
this.birthday= birthday;
this.sex= sex;
this.major= major;
}
public student()
{
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name= name;
}
public String getBirthday()
{
return birthday;
}
public void setBirthday(String birthday)
{
this.birthday= birthday;
}
public String getSex()
{
return sex;
}
public void setSex(String sex)
{
this.sex= sex;
}
public String getStuno()
{
return stuno;
}
public void setStuno(String stuno)
{
this.stuno= stuno;
}
public String getMajor()
{
return major;
}
public void setMajor(String major)
{
this.major= major;
}
private String name;
private String birthday;
private String sex;
private String stuno;
private String major;
}
java 种的File类是用来做什么的有什么用处(追加40分)
java种的File类的作用和用处如下:
1.直接处理文件和文件系统。File类没有指定信息怎样从文件读取或向文件存储;它描述了文件本身的属性。File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径。此外,File还浏览子目录层次结构。很多程序中文件是数据的根源和目标。尽管它们在小应用程序中因为安全原因而受到严格限制,文件仍是存储固定和共享信息的主要资源。Java中的目录当成File对待,它具有附加的属性——一个可以被 list()方法检测的文件名列表。
2.下面的构造函数可以用来生成File对象:
File(String directoryPath)
File(String directoryPath, String filename)
File(File dirObj, String filename)
这里,directoryPath是文件的路径名,filename是文件名,dirObj一个指定目录的File对象。下面的例子创建了三个文件:f1,f2,和f3。第一个File对象是由仅有一个目录路径参数的构造函数生成的。第二个对象有两个参数——路径和文件名。第三个File对象的参数包括指向f1文件的路径及文件名。f3和f2指向相同的文件。
File f1= new File("/");
File f2= new File("/","autoexec.bat");
File f3= new File(f1,"autoexec.bat");
注意:Java能正确处理UNIX和Windows/DOS约定路径分隔符。如果在Windows版本的Java下用斜线(/),路径处理依然正确。记住,如果你用Windows/DOS使用反斜线(/)的约定,你需要在字符串内使用它的转义序列(//)。Java约定是用UNIX和URL风格的斜线来作路径分隔符。
java中Write FileWriter()和FileWriter(new file)的区别
先回答第一问题: java中Write FileWriter()和FileWriter(new file)的区别?
Write FileWriter()这种写法是没有的。
FileWriter(new file)是你首先要创建一个file类的对象。然后把它传进这个FileWriter类括号里面来。那么就根据你在这个File对象里面指定的那个路径和文件名来创建对该文件的一个写入器。
第二个问题
FileWriter(路径名)和FileWriter(new file(路径名))这两者有什么区别?
差不多两个都可以做效果是一样的,只不过操作有点不同,第一个是直接在创建这个文件写入器的时候,把要写的写进哪个文件里面去,在这个路径里面就标明清楚了。第二个呢,是先创建一个文件对象用这个路径来创建一个文件对象。然后呢,把这个对象作为参数传进去。
这样的方式都是可以的,看你怎么去用你,比如说,你想直接就直接就写这个字符串的也可以。你要是想创建个文件对象,然后用文件做别的事情,然后把这个对象传进来,也可以。
同学是不是在自学JAVA呢,如果能够进行系统地学习,这些问题将会变得很简单。给你一个免费的视频地址吧网页链接可以跟着学习从入门到精通。
java filewriter干什么和java 种的File类是用来做什么的有什么用处(追加40分)的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!