Ⅰ java如何使用Java向PDF页面中添加文本
试试这个教程,需要依赖免费版的Spire.Pdf.jar包
importjava.awt.*;
importjava.awt.geom.Point2D;
importjava.awt.geom.Rectangle2D;
importjava.io.*;
importcom.spire.pdf.PdfPageBase;
importcom.spire.pdf.graphics.*;
{
voidmain(String[]args)throwsFileNotFoundException,IOException{
//创建PdfDocument对象
PdfDocumentdoc=newPdfDocument();
//添加一页
PdfPageBasepage=doc.getPages().add();
//标题文字
Stringtitle="标题";
//创建单色画刷对象
PdfSolidBrushbrush1=newPdfSolidBrush(newPdfRGBColor(Color.BLUE));
PdfSolidBrushbrush2=newPdfSolidBrush(newPdfRGBColor(Color.BLACK));
//创建TrueType字体对象
PdfTrueTypeFontfont1=newPdfTrueTypeFont(newFont("ArialUnicodeMS",Font.PLAIN,14),true);
PdfTrueTypeFontfont2=newPdfTrueTypeFont(newFont("ArialUnicodeMS",Font.PLAIN,10),true);
//创建PdfStringFormat对象
PdfStringFormatformat1=newPdfStringFormat();
format1.setAlignment(PdfTextAlignment.Center);//设置文字居中
//使用drawString方法绘制标题文字
page.getCanvas().drawString(title,font1,brush1,newPoint2D.Float(page.getActualBounds(true).width/2,0),format1);
//从txt文件读取内容到字符串
Stringbody=readFileToString("C:\Users\Administrator\Desktop\bodyText.txt");
//创建PdfStringFormat对象
PdfStringFormatformat2=newPdfStringFormat();
format2.setParagraphIndent(20);//设置段首缩进
//创建Rectangle2D对象
Rectangle2D.Floatrect=newRectangle2D.Float(0,30,page.getActualBounds(true).width,page.getActualBounds(true).height);
//使用drawString方法在矩形区域绘制主体文字
page.getCanvas().drawString(body,font2,brush2,rect,format2);
//保存到PDF文档
doc.saveToFile("ouput.pdf");
}
//自定义方法读取txt文件内容到字符串
(Stringfilepath)throwsFileNotFoundException,IOException{
StringBuildersb=newStringBuilder();
Strings="";
BufferedReaderbr=newBufferedReader(newFileReader(filepath));
while((s=br.readLine())!=null){
sb.append(s+" ");
}
br.close();
Stringstr=sb.toString();
returnstr;
}
}
Ⅱ java文件读写,在一个已经有内容的文件中,追加第一行,如何做到
我的想法是可以用RandomAccessFile,这个类的seek方法,想在文件的哪个位置插入内容都行。所以你的第一行就不在话下了。但是,这个会覆盖你文件中插入位置后面的内容。相当于我们在输入的时候,按了键盘的insert键盘。所以,像你这种情况只能用临时文件来存储原有的内容,然后把要插入的数据写入文件,再把临时文件的内容追加到文件中。x0dx0avoid insert(String filename,int pos,String insertContent){//pos是插入的位置x0dx0a File tmp = File.createTempFile("tmp",null);x0dx0a tmp.deleteOnExit();x0dx0a try{x0dx0a RandomAccessFile raf = new RandomAccessFile(filename,"rw");x0dx0a FileOutputStream tmpOut = new FileOutputStream(tmp);x0dx0a FileInputStream tmpIn = new FileInputStream(tmp);x0dx0a raf.seek(pos);//首先的话是0x0dx0a byte[] buf = new byte[64];x0dx0a int hasRead = 0;x0dx0a while((hasRead = raf.read(buf))>0){x0dx0a //把原有内容读入临时文件x0dx0a tmpOut.write(buf,0,hasRead);x0dx0a x0dx0a }x0dx0a raf.seek(pos);x0dx0a raf.write(insertContent.getBytes());x0dx0a //追加临时文件的内容x0dx0a while((hasRead = tmpIn.read(buf))>0){x0dx0a raf.write(buf,0,hasRead);x0dx0a }x0dx0a }x0dx0a}
Ⅲ JAVA文件追加的几种方式
java文件追加内容的三种方法:
方法一:
public static void writeToTxtByRandomAccessFile(File file, String str){
RandomAccessFile randomAccessFile = null;
try {
randomAccessFile = new RandomAccessFile(file,"rw");
long len = randomAccessFile.length();
randomAccessFile.seek(len);
randomAccessFile.writeBytes(new String(str.getBytes(),"iso8859-1")+"\r\n");
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally{
try {
randomAccessFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
方法二:
public static void writeToTxtByFileWriter(File file, String content){
BufferedWriter bw = null;
try {
FileWriter fw = new FileWriter(file, true);
bw = new BufferedWriter(fw);
bw.write(content);
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
方法三:
public static void writeToTxtByOutputStream(File file, String content){
BufferedOutputStream bufferedOutputStream = null;
try {
bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(file, true));
bufferedOutputStream.write(content.getBytes());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e ){
e.printStackTrace();
}finally{
try {
bufferedOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ⅳ JAVA如何在文件头添加内容
“先读入,再写回”的方法时可行的
这个文件有几十兆,不代表整个读入,不是占用版几十兆权内存。先写入头部的文字,再循环读一点源文件,写一点源文件。
RandomAccessFile 也可以,只是最初要留出空间,比如一些空格
Ⅳ java操作将内容写入文件
public static boolean updateFile(String str)
{
str = test ;
boolean blg = false;
try {
BufferedWriter bw = new BufferedWriter(new FileWriter( C:\data txt ));
StringBuilder *** = new StringBuilder( );
*** append(str);
String a = *** toString();
byte[] b = (a) getBytes();
// 写入文件 还可以用其他方法如 write(String str)
bw write(a b length);
bw close();
} catch (IOException e) {
// TODO Auto generated catch block
e printStackTrace();
}
return blg ;
lishixin/Article/program/Java/hx/201311/26772
Ⅵ java编程中 怎样解决在文档中添加内容,原有的内容不会被清掉。
FileOutputStream(File file, boolean append),append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处.这种方法只能实现在文件末尾追加内容.
如果你想实现在文件中任意插入内容,则不能简单地"直接往文件里面写内容" (如果不是插入而是替换的话,可以用RandomAccessFile,它的seek(long pos)可以随意移动写文件的指针)
那么真正地插入内容,是需要先把文件内容加载到内存里——比如把所有读取的内容加到一个StringBuffer对象中,然后用StringBuffer的insert(int offset,
String str) 函数插入你要插入的字符串,最后重写文件.
当然喽,实你的具体需求而定,如果你要操作的文件非常大,那么全加载到内存中可能不够,可以先拆分文件,然后处理中间的小文件,最后再合并文件(不过几种常用的编辑器多半不是这样的,比如记事本,notepad++,当文本大到一定程度时,都会变卡(记事本最卡..),说明它们可能都是直接全加到内存中的)
Ⅶ JAVA中如何向创建一个文件并且向其中写入内容
如下代码,向D盘temp文件夹下的 test.txt 文件中写入 Hello World!
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.OutputStreamWriter;
publicclassApp{
publicstaticvoidmain(String[]args)throwsIOException{
Filefile=newFile("d:\temp\test.txt");
try( FileOutputStreamoutputStream=newFileOutputStream(file);
=newOutputStreamWriter(outputStream)){
streamWriter.write("HelloWorld!");
streamWriter.flush();
}
}
}
Ⅷ java插入内容到文本文件
把文本文件的内容全部读出来,在适当的位置插入你需要插入的内容,然后再把全部文本从头写入文件去。
如果是很大的文件,一般是边读边写入一个临时文件,最后用临时文件覆盖源文件。
Ⅸ java代码 如何向TXT文件写入内容
向txt文件写入内容基本思路就是获得一个file对象,新建一个txt文件,打开I/O操作流,使用写入方法进行读写内容,示例如下:
packagecommon;
importjava.io.*;
importjava.util.ArrayList;
publicclassIOTest{
publicstaticvoidmain(Stringargs[]){
ReadDate();
WriteDate();
}
/**
*读取数据
*/
publicstaticvoidReadDate(){
Stringurl=“e:/2.txt”;
try{
FileReaderread=newFileReader(newFile(url));
StringBuffersb=newStringBuffer();
charch[]=newchar[1024];
intd=read.read(ch);
while(d!=-1){
Stringstr=newString(ch,0,d);
sb.append(str);
d=read.read(ch);
}
System.out.print(sb.toString());
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
/**
*写入数据
*/
publicstaticvoidWriteDate(){
try{
Filefile=newFile(“D:/abc.txt”);
if(file.exists()){
file.delete();
}
file.createNewFile();
BufferedWriteroutput=newBufferedWriter(newFileWriter(file));
ArrayListResolveList=newArrayList();
for(inti=0;i<10;i++){
ResolveList.add(Math.random()*100);
}
for(inti=0;i
output.write(String.valueOf(ResolveList.get(i))+“ ”);
}
output.close();
}catch(Exceptionex){
System.out.println(ex);
}
}
}
原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/database/303/12439303.shtml
Ⅹ java如何追加写入txt文件
java中,对文件进行追加内容操作的三种方法!
importjava.io.BufferedWriter;
importjava.io.FileOutputStream;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.io.OutputStreamWriter;
importjava.io.PrintWriter;
importjava.io.RandomAccessFile;
//如果文件存在,则追加内容;如果文件不存在,则创建文件,追加内容的三种方法
{
@SuppressWarnings("static-access")
publicstaticvoidmain(String[]args){
AppendContentToFilea=newAppendContentToFile();
a.method1();
a.method2("E:\dd.txt","222222222222222");
a.method3("E:\dd.txt","33333333333");
}
方法1:
publicvoidmethod1(){
FileWriterfw=null;
try{
//如果文件存在,则追加内容;如果文件不存在,则创建文件
Filef=newFile("E:\dd.txt");
fw=newFileWriter(f,true);
}catch(IOExceptione){
e.printStackTrace();
}
PrintWriterpw=newPrintWriter(fw);
pw.println("追加内容");
pw.flush();
try{
fw.flush();
pw.close();
fw.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
方法2:
publicstaticvoidmethod2(Stringfile,Stringconent){
BufferedWriterout=null;
try{
out=newBufferedWriter(newOutputStreamWriter(
newFileOutputStream(file,true)));
out.write(conent+" ");
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
out.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
方法3:
publicstaticvoidmethod3(StringfileName,Stringcontent){
try{
//打开一个随机访问文件流,按读写方式
RandomAccessFilerandomFile=newRandomAccessFile(fileName,"rw");
//文件长度,字节数
longfileLength=randomFile.length();
//将写文件指针移到文件尾。
randomFile.seek(fileLength);
randomFile.writeBytes(content+" ");
randomFile.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}