java重大疑惑,看过《java编程思想》的进
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java重大疑惑,看过《java编程思想》的进相关的知识,希望对你有一定的参考价值。
《java编程思想》
原书导入的包
import static net.mindview.util.Print.*;是可以使得print语句在原书作者所在电脑上编译成功的,我是想知道在什么情况下,导入一个包,加一句和他类似的什么东西,就可以省略System.out.直接可以用print
静态导入是JDK1.5里面的新的特性
一般我们常写
import java.util.*;
意思是导入util包下的所有类,然后使用下面的语句用sort对alist进行排序。
Collections.sort(alist);
在jdk1.5中,我们可以写
import static java.util.Collections.*;
意思是导入Collections类的所有静态方法(注意只是静态方法),这样我们可以使用下面
的语句达到同样的效果:
sort(alist);
读到这里,可能很多人就要想了,System.out.println("");应该也可以写简单一点吧(我开始也是这么想的)。不好意思,呵呵,println是out的实例方法,非静态方法,不能用上面的简写的。
但是可以用一种变通的方法,自己实现一个静态的println,然后调用这个就行了。 参考技术A import static net.mindview.util.Print.*;这是静态导入。你说的那个程序在下面: 只要你按下面的程序来写。就可以静态的导入。
//: net/mindview/util/Print.java
// Print methods that can be used without
// qualifiers, using Java SE5 static imports:
package net.mindview.util;
import java.io.*;
public class Print
// Print with a newline:
public static void print(Object obj)
System.out.println(obj);
// Print a newline by itself:
public static void print()
System.out.println();
// Print with no line break:
public static void printnb(Object obj)
System.out.print(obj);
// The new Java SE5 printf() (from C):
public static PrintStream
printf(String format, Object... args)
return System.out.printf(format, args);
///:~
上面的那个程序就是你静态导入的类,你看看,它的方法都是静态的如:public static void print(Object obj) 。只要你也写这样一样类。里面都用静态的方法。并且用静态导入的方法来导入它就可以了。本回答被提问者采纳 参考技术B 把他的光盘拿过来 把里面的jar包加到classpath里 加一句import static net.mindview.util.Print.*;就行了
JAVA操作PDF的几个问题,是高手的进。
1.通过iText怎样对PDF加密(只是普通加密,非认证加密)。
2.在JSP页面中显示PDF时,怎样禁止右键菜单(只禁止右键菜单中的“打印”选项也行)。
3.在后台或在JSP页面中怎样启用/禁用PDF的“打印”功能(打印时不弹出属性对话框)。
看了iText的文档和api总算是实现了大部份的功能,下面就把实现CODE贴出来和大家分亨一下。。
第一种方法:
//屏蔽PDF菜单栏、工具栏(PdfWriter.HideMenubar | PdfWriter.HideToolbar | PdfWriter.HideWindowUI)
reader = new PdfReader(inputPath);
reader.setViewerPreferences(PdfWriter.HideMenubar);
//设置加密权限
PdfEncryptor.encrypt(reader,new FileOutputStream(outFile), readPassword.getBytes(), writePassword.getBytes(), 0, false);
//PdfWriter.AllowAssembly |PdfWriter.AllowFillIn|PdfWriter.AllowScreenReaders
上面的代码中被注释的代码是PDF的权限设置,将注释的代码替换0处,就可以实现对PDF文件权限的控制了。
第二种方法:
PdfReader reader = new PdfReader(annexPath);
PdfStamper stamper = new PdfStamper(reader, baos);
PdfWriter writer = stamper.getWriter();
stamper.setEncryption(null, "wwwwww".getBytes(), 0, false);
// 隐藏菜单栏、工具栏
writer.setViewerPreferences(PdfWriter.HideMenubar);
stamper.close();
2、通过js可以实现禁止右键行为
3、页面无法打印好像实现不了,因为浏览器有打印功能会将页面打印出来 参考技术A 加密必须在document.open()之前进行设置。
public void setEncryption(boolean strength, String password,
String ownwerPassWord, int permissions);
strength 是PdfWriter.strength40bits,PdfWriter.strength128bits,常量之一
password和ownwerPassWord可以为空或0的
permissions也是PdfWriter的常量PdfWriter.Allow开头的好几个。
以上是关于java重大疑惑,看过《java编程思想》的进的主要内容,如果未能解决你的问题,请参考以下文章