一个关于文件输出流的问题
import java.io.*;import java.nio.channels.*;
import java.nio.*;
public class Moon
{
public static void main(String args[])
{
String filename=new String("moon");
String filepath=new String("C:/123/456");
File path=new File(filepath);
File file=new File(filename);
if(!path.exists())
{
try
{
path.mkdirs();
}
catch(IOException e)
{
System.out.println("路径无法创建");
}
}
if(!file.exists())
{
try
{if
(file.isFile())
{
file.createNewFile();
}
}
else
{
file.mkdir();
}
}
catch(IOException e)
{
System.out.println("文件无法创建");
}
}
FileOutputStream output=null;
try
{
output=new FileOutputStream(file,true);
}
catch(IOException e0)
{
System.out.println(e0.toString());
}
FileChannel outChannel=output.getChannel();
ByteBuffer buf=ByteBuffer.allocate(2048);
buf.append("我是新来的"); //如果我想直接加如一行字符串怎么办?!
buf.flip();
try
{
outChannel.write(buf); //为什么非得写到通道中去? 直接写入输出流不可以吗?!
output.close();
}
catch(IOException e1)
{
System.out.println(e1.toString());
}
}
}
----------------解决方案--------------------------------------------------------
没人回答我!?
----------------解决方案--------------------------------------------------------
你的问题太高深了,所以没人回答你呀,呵
----------------解决方案--------------------------------------------------------
import java.io.*;
public class test5{
public static void main(String[] xiang){
byte[] b1=new byte[322];
byte[] b2=new byte[322];
byte[] b3=new byte[3212];
byte[] b4=new byte[3212];
try{
System.out.println("请输入源文件名称:");
System.in.read(b1,0,322);
System.out.println("请输入目的文件名称:");
System.in.read(b2,0,322);
String sourceName=new String(b1,0);
String desName=new String(b2,0);
FileInputStream fileInput=new FileInputStream(sourceName);
int bytes1=fileInput.read(b3,0,3212);
String sourceFile=new String(b3,0,0,bytes1);
FileOutputStream FileOutput=new FileOutputStream(desName);
FileOutput.write(b3,0,bytes1);
fileInput=new FileInputStream(desName);
int bytes2=fileInput.read(b4,0,3212);
String desFile=new String(b4,0,0,bytes2);
System.out.println("\n源文件内容为:\n");
System.out.println(sourceFile);
System.out.println("\n目的文件内容为:\n");
System.out.println(desFile);
}catch(Exception e){
System.out.println(e.toString());
}
}}
我问你一个问题行不,为什么我用JDK1.5.0_9运生它的时候,出现:test5.java使用或覆盖了已过时的API。注意:要了解详细信息,请使用-Xlint:deprecation重新编译。
----------------解决方案--------------------------------------------------------
是什么原因呀,老大
----------------解决方案--------------------------------------------------------
不明白啊!
----------------解决方案--------------------------------------------------------
回复:(xiang092106)import java.io.*; public cla...
API过时了 说明他程序里用了已经被SUN公司认为容易引起错误或用别的方法覆盖的的函数 不知道楼主问的具体是什么?要输入一行什么? 通道我没用过:)直接用输出流writeLine或UTF能输入一行字符吧 不行就在末尾加上\n转行 ----------------解决方案--------------------------------------------------------
我的意思很简单
就是想用FileOutputStream的FileChannel
对象向文件中输入信息!
紧此而已
----------------解决方案--------------------------------------------------------
....没人吗?
----------------解决方案--------------------------------------------------------
通道不太了解
所以帮不上你的忙了
----------------解决方案--------------------------------------------------------